我要介绍的这个问题,只发生在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聚焦时我的TableRow背景会变白?
答案 0 :(得分:1)
这是第一个问题的答案: Android: how to check if a View inside of ScrollView is visible?
第二个,您可以在父视图上设置OnTouchListener。滚动时,其x或y值会更改,然后在EditText上执行clearFocus()。这是一个很好的参考,请检查触摸事件监听器部分: http://www.techotopia.com/index.php/Android_Touch_and_Multi-touch_Event_Handling
如果您输入源代码和错误日志,您将获得更好的具体答案。