在我的列表视图中,我必须使第一个项目成为焦点。在我的应用程序中,我已经完成了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/

10-11 17:17