带有 EditText 的 Android Form 使屏幕闪烁

Posted

技术标签:

【中文标题】带有 EditText 的 Android Form 使屏幕闪烁【英文标题】:Android Form with EditText makes the screen flash 【发布时间】:2013-04-23 23:31:21 【问题描述】:

我不知道为什么我的“表单”活动在 EditText 被聚焦然后滚动布局时闪烁。 它只发生在 android 4.0 + 的设备上 我正在使用表格布局并动态添加 TableRow。

我的 TableRow 是这样的:

 <TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableRow1"
    android:layout_
    android:layout_
    android:background="@drawable/borda"
    android:layout_margin="10dip"
    android:paddingLeft="10dip"
    >
  <LinearLayout
    android:id="@+id/l1"
    android:layout_
    android:layout_
    android:orientation="horizontal"
    android:layout_marginTop="15dip"
    android:layout_marginBottom="15dip"
    >

    <TextView
        android:id="@+id/label"
        android:layout_
        android:layout_
        android:text="@string/nome"
        android:textStyle="bold"
        android:textColor="#526691"
        android:textSize="15sp"
        android:paddingLeft="10dip"
        android:paddingRight="5dip"
         />


       <EditText
        android:id="@+id/valorLabel"
        android:layout_
        android:layout_
        android:textSize="15sp" 
        android:background="#ffffffff"   
        android:singleLine="true"   
        android:inputType="textCapSentences" 
         android:textColor="#777777" />          


 </LinearLayout>

</TableRow>

然后,我将 TableRow 添加到 TableLayout....

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
>
<LinearLayout 
android:layout_
android:layout_
android:orientation="vertical"
android:cacheColorHint="#00000000"    
android:background="#dddddd">
<TextView
        android:id="@+id/add_instancia_tv1"
        android:layout_
        android:layout_
        android:text="@string/add_fornecedor_informacoes"
        android:textColor="#4c566c"
        android:textStyle="bold"
        android:paddingLeft="20dip"
        android:paddingTop="20dip"
        android:textSize="20dip"/>
<TableLayout 
android:layout_
android:id="@+id/table_novo_registro1"
android:layout_    
android:orientation="vertical"
android:background="#dddddd" >
...

然后,在代码中,我膨胀了我的 TableRow

TableRow colunaNome= (TableRow) getLayoutInflater().inflate(R.layout.tablerownovocampo, null);
            LinearLayout linearlNome= (LinearLayout)colunaNome.getChildAt(0);   
            TextView textvNome=(TextView)linearlNome.getChildAt(0);
            textvNome.setText(R.string.nome);
            etNome=(EditText)linearlNome.getChildAt(1);

并且添加了很多TableRow。

问题是……

为什么我的表单在滚动时闪烁(闪烁)?为什么它只发生在 Android 4.0 + 中?

我已经看过这个帖子了.... http://android-developers.blogspot.com.br/2009/01/why-is-my-list-black-android.html 但我没有使用 ListView。

我已经试过了

android:cacheColorHint="#00000000"

在 TableLayout 中,但它不起作用。

【问题讨论】:

【参考方案1】:

这将 100% 工作.....

ScrollView sv=(ScrollView) findViewById(R.id.scrollView1);

    sv.setOnTouchListener(new OnTouchListener() 

        @Override
        public boolean onTouch(View v, MotionEvent event) 
            edttext.clearFocus();   
            return false;
        
    );

【讨论】:

以上是关于带有 EditText 的 Android Form 使屏幕闪烁的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中将EditText提示创建为带有图像的文本

如何在 android 中制作带有圆角的 EditText 组件

带有 EditText 的 Android Form 使屏幕闪烁

带有 android:hint 的 Android EditText 密码

带有 inputType numberDecimal 的 Android EditText 字段设置默认值

单击按钮时如何在android中获取带有ListView值的复选框,EditText?