我的ScrollView
:
<ScrollView
android:id="@+id/scrollView8"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg" >
<LinearLayout
android:id="@+id/ListItems"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/btnbge81"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
我在LinearLayout
中有大约500个名为“ListItems”的子控件。
为什么向下滚动时ScrollView
会自动显示顶部?
答案 0 :(得分:0)
EditText
会滚动ScrollView
,以便进入视野。您必须实施onTouchListener
。在某个地方有一个答案,但简而言之,这对我有用。您必须清除EditText
控件的焦点,以防止它们滚动到视图中。
public class SettingRecord extends Fragment implements OnTouchListener {
// setup scroll views onresume()
ScrollView sv = (ScrollView) view.findViewById(R.id.svRecord);
sv.setOnTouchListener(this);
sv.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
sv.setFocusable(true);
sv.setFocusableInTouchMode(true);
etName = (EditText) view.findViewById(R.id.etName);
@Override
public boolean onTouch(View v, MotionEvent event) {
@Override
public boolean onTouch(View v, MotionEvent event) {
// fix focus on edit texts scrolling
if (etName.hasFocus()) {
etName.clearFocus();
}
return false;
}
}