我有recyclerView,每个itemView都包含以下内容:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
app:cardCornerRadius="8dp"
android:layout_marginBottom="4dp"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_weight="10"
android:layout_height="wrap_content">
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider"/>
<ScrollView android:layout_width="match_parent"
android:layout_height="100sp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/answer"/>
</ScrollView>
</LinearLayout>
</android.support.v7.widget.CardView>
通过使用此kotlin文件,我使TextViews在RecyclerView内可滚动(只有在不适合100sp的情况下,textView才可滚动)。
itemView.answer.setOnTouchListener{v,event ->
// Disallow the touch request for parent scroll on touch of child view
v.parent.requestDisallowInterceptTouchEvent(true)
false
}
相同的Java格式文件:
itemView.answer.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// Disallow the touch request for parent scroll on touch of child view
v.getParent().requestDisallowInterceptTouchEvent(true);
return false;
}
});
问题在于,然后TextView仅包含1或2行文本,该TextView内部有很多空白空间。我想做这样的事情:当TextView内有1-5行文本时,其高度仅为“ wrap_content” 并且它是不可滚动的。 但是当有6行以上的文本时,它仅适合5行,以查看用户需要滚动该TextView的其他行。
答案 0 :(得分:1)
永远不要在import collections
a = [1, 2, 2, 2, 3, 3, 4, 4, 5, 6, 7, 7, 8]
print([item for item, count in collections.Counter(a).items()])
内包含滚动视图。这将导致无法预测的行为,并且当最终用户尝试滚动列表并最终滚动ViewHolder
的内容时,最终用户会感到沮丧。一种更好的匹配方法是实现可展开的ViewHolder
,它在折叠状态下会显示例如3行文字,所有文字均处于展开状态。