android-每当进入列表视图屏幕时,如何默认使第一项在ListView中聚焦?
作者:互联网
在我的列表视图中,我必须使第一个项目成为焦点.在我的应用中,我已经完成了D-PAD的实现,如果我找到了初始焦点,我将使用D-PAD导航焦点.
我尝试使用setSelection(position)此代码不起作用.
我发现listview有一些奇怪的行为,默认情况下它总是聚焦在-1位置.我不知道为什么?,请澄清一下这种行为.
我的列表视图项是从服务器加载的.那么,当我必须设置setSelection()以及如何检查setAdpter任务是否完成时?
@Override
public final View getView(final int position, final View convertView, final ViewGroup parent) {
final LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View rowView = inflater.inflate(R.layout.list_item_faq, parent,
false);
final TextView textView = (TextView) rowView
.findViewById(R.id.faqlist_text);
textView.setText("text");
textView.setMaxLines(2);
textView.setEllipsize(android.text.TextUtils.TruncateAt.END);
return rowView;
}
adapter.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/sel_list_item" //this is selector
android:gravity="center_vertical"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:layout_margin="2dp"
android:layout_gravity="center"
android:src="@drawable/cc_question_mark" />
<TextView
android:id="@+id/faqlist_text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="20dp"
android:gravity="center_vertical"
android:textColor="#6f6f6f"
android:textSize="22sp" />
</LinearLayout>
请提出任何建议使第一项成为重点.
解决方法:
yourListView是否可聚焦?
在onResume()中执行
yourListView.postDelayed(new Runnable() {
@Override
public void run() {
yourListView.setSelection(0);
yourListView.getChildAt(0).requestFocus()
}
}, 500);
标签:android-selector,android-listview,android-drawable,android 来源: https://codeday.me/bug/20191120/2046953.html