使用带有Recycler View的多行edittext

时间:2016-07-20 11:10:15

标签: android android-recyclerview android-nestedscrollview

我在Recycler View中使用多行EditText 作为列表项。我的问题是EditText在Recycler视图中不能平滑滚动。

以下是我使用的xml

对于Recycler View

 <android.support.v7.widget.RecyclerView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/rec_actions"
                    android:layout_above="@+id/sepp"
                    android:nestedScrollingEnabled="true" />

对于列表项

<android.support.v4.widget.NestedScrollView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="2"
                android:background="@drawable/commentbox_bgright">

                <EditText
                    android:id="@+id/et_control"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="@null"
                    android:gravity="top"
                    android:minLines="4"
                    android:padding="5dp"
                    android:scrollbars="vertical"
                    android:textCursorDrawable="@null"
                    android:textSize="12dp" />
            </android.support.v4.widget.NestedScrollView>

请帮我解决这个问题。我花了很多时间在这......

2 个答案:

答案 0 :(得分:1)

EditTextView.setOnTouchListener { v, _ ->
  v.parent.requestDisallowInterceptTouchEvent(true)
  false
}

当在回收者视图上使用Edittext时,请求不向其父级传递触摸事件。这样,editText将具有触摸事件并将表现出预期的效果

答案 1 :(得分:0)

我尝试了你的代码。并做了一点改动。我删除了nestedscrollview并将edittext放在相对布局中。滚动工作点亮得更顺利,并没有注意到任何其他滚动行为的变化,所以建议改变你的列表项xml像这样。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp">

   <EditText
                android:id="@+id/et_control"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@null"
                android:gravity="top"
                android:minLines="4"
                android:padding="5dp"
                android:scrollbars="vertical"
                android:textCursorDrawable="@null"
                android:textSize="12dp" />
</RelativeLayout>