0

我要介绍的这个问题,只发生在Android 4.0 +
我有一个带有4个TableLayout的LinearLayout,它的父级是一个ScrollView。我将 TableRows 动态添加到每个 TableLayout 中。

我的 TableRows 是这样的。

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

    <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        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_width="140dip"
        android:layout_height="wrap_content"
        android:textSize="15sp" 
        android:background="#ffffffff"   
        android:singleLine="true"   
        android:inputType="textCapSentences" 
         android:textColor="#777777" />          


 </LinearLayout>

</TableRow>

当聚焦的 EditText 滚动到屏幕外时似乎有问题。

问题 我怎么知道 EditText 在屏幕上是否可见?如果 EditText 的父级滚动,有没有办法在 EditText 中移除焦点?

第二个问题
为什么当 EditText 聚焦时,我的 TableRow 的背景会变白?

4

1 回答 1

1

这是第一个问题的答案: Android:如何检查 ScrollView 内部的 View 是否可见?

第二个,你可以在父视图上设置 OnTouchListener。滚动时,它的 x 或 y 值会发生变化,然后在 EditText 上执行 clearFocus()。这是一个很好的参考,检查Touch Event Listener部分: http ://www.techotopia.com/index.php/Android_Touch_and_Multi-touch_Event_Handling

如果你把你的源代码和错误日志,你会得到更好的具体答案。

于 2013-05-03T20:11:14.823 回答