gpt4 book ai didi

android - ScrollView 禁用焦点移动

转载 作者:IT老高 更新时间:2023-10-28 23:07:56 36 4
gpt4 key购买 nike

我有一个简单的输入表单;它是一个在 ScrollView 内带有 EditTexts 的垂直 LinearLayout。

<ScrollView android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView style="@style/Text"
android:text="Name"/>
<EditText style="@style/EditBox"/>
</LinearLayout>
<View style="@style/Divider"/>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView style="@style/Text"
android:text="Password"/>
<EditText style="@style/EditBox"/>
</LinearLayout>
...
</LinearLayout>
</ScrollView>

当用户滚动表单时,它会自动将焦点移到可见的 EditText 上。是否可以禁用此类行为并始终将注意力集中在当前通过触摸选择的 EditText 上?

我了解这可能是一项功能,但我需要禁用它。

谢谢!

最佳答案

只是想我会分享我的解决方案。即使其他一些答案的评论指出您不能覆盖此行为,但事实并非如此。一旦您覆盖 onRequestFocusInDescendants() 方法,此行为就会停止。因此,只需创建您的 ScrollView 扩展即可:

public class NonFocusingScrollView extends ScrollView {

public NonFocusingScrollView(Context context) {
super(context);
}

public NonFocusingScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public NonFocusingScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) {
return true;
}

}

你就完成了。 ScrollView 将不再干扰您的焦点。

关于android - ScrollView 禁用焦点移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5375838/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com