在我的列表视图中,我必须使第一个项目成为焦点。在我的应用程序中,我已经完成了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;
}
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
中做
yourListView.postDelayed(new Runnable() {
@Override
public void run() {
yourListView.setSelection(0);
yourListView.getChildAt(0).requestFocus()
}
}, 500);
关于android - 每当进入 ListView 屏幕时,如何默认使第一项在ListView中聚焦?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28044689/