RecyclerView中的多个EditTexts导致奇怪的Tab键顺序

时间:2015-02-19 19:35:33

标签: android focus android-recyclerview

提前感谢您的帮助。我有一个使用多个ListViews的应用程序。我正在为Lollipop发布重新编写并将所有ListView转换为RecyclerViews。 3个转换中有2个是无缝的,但我有1个ListView,每个ViewHolder有几个EditTexts。在我将其转换为RecyclerView之后,'标签顺序'或者'关注订单'表现得很奇怪。

每个ViewHolder都有4个EditTexts。如果我开始编辑一个,然后按键盘上的“下一步”按钮,它会前进以编辑下一个EditText。现在,在视图必须滚动之前,大约有3个ViewHolders在屏幕上修复。一旦我点击了3个ViewHolders中的所有EditTexts,它就会跳回到开始编辑,而不是前进到第4个ViewHolder。

我确定它与RecyclerView仅在内存中容纳如此多的ViewHolders并回收它们有关,但我无法找到覆盖行为的位置,因此它会前进到下一个ViewHolder下来。它确实绑定了第4个ViewHolder,然后再跳回到顶部,但没有前进到它。

创建/实例化的代码:

adapter = new Adapter(this, R.layout.itemlayout, record.getRecords());
recyclerList = ((RecyclerView) findViewById(R.id.recyclerView));
recyclerList.setLayoutManager(new LinearLayoutManager(this));
recyclerList.setAdapter(adapter);

itemview xml ::

的适用部分
<LinearLayout
    android:id="@+id/LinearLayout9"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight=".275"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/LinearLayout8"
        android:layout_width="fill_parent"
        android:layout_height="200dp" >

        <LinearLayout
            android:id="@+id/LinearLayout5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="10dp"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/lblQtyOrd"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:layout_marginBottom="15dp"
                android:layout_marginTop="10dp"
                android:focusable="false"
                android:text="@string/qty_ord"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/lblPackList"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:layout_marginBottom="10dp"
                android:layout_marginTop="10dp"
                android:focusable="false"
                android:text="@string/packlist_qty"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/lblRcvQty"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:layout_marginTop="15dp"
                android:focusable="false"
                android:text="@string/rcv_qty"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/lblLabelCount"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end"
                android:layout_marginTop="27dp"
                android:focusable="false"
                android:text="@string/rcv_labelCount"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textStyle="bold" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/LinearLayout4"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/rcvQtyOrd"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:layout_marginTop="10dp"
                android:focusable="false"
                android:text="@string/qty_ord"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText
                android:id="@+id/RcvItmPackListQty"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:ems="12"
                android:hint="@string/packlist_qty"
                android:inputType="number|numberDecimal"
                android:selectAllOnFocus="true"
                android:maxLength="30" />

            <EditText
                android:id="@+id/RcvItmQty"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:ems="12"
                android:hint="@string/rcv_qty"
                android:selectAllOnFocus="true"
                android:inputType="number|numberDecimal" />

            <EditText
                android:id="@+id/RcvLabelCount"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:ems="12"
                android:hint="@string/rcv_labelCount"
                android:inputType="number"
                android:selectAllOnFocus="true" />

        </LinearLayout>
    </LinearLayout>

    <EditText
        android:id="@+id/rcvItmNote"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:ems="12"
        android:hint="@string/rcv_note"
        android:inputType="textCapSentences|textAutoCorrect"
        android:imeOptions="actionNext"
        android:lines="2"
        android:maxLines="2" >
    </EditText>

</LinearLayout>

任何想法都表示赞赏。非常感谢。

0 个答案:

没有答案