我必须代表TextViews
中的一些短句。我使用带有recyclerView
的{{1}}并在网格的每个单元格上设置GridLayoutManager
上的每个句子。问题是,我希望网格的每个单元格根据TextView
中的文本更改其宽度。我的意思是,一个长句可以占据屏幕的全宽,或者如果句子非常短,它们必须在同一行。
我也尝试使用TextView
,但我也无法获得所需的结果。
有关如何获得这个的想法吗?
修改
item.xml
GridView
编辑2
这是布局应如何显示的示例。每个元素的长度不会总是相同。所以我需要一种布局,让较大的元素具有更短的宽度。
答案 0 :(得分:2)
使用此gradle
implementation 'com.google.android:flexbox:1.0.0'
尝试在您的回收站视图中使用此布局
FlexboxLayoutManager flexLayout = new FlexboxLayoutManager( MainActivity.this );
recyclerView.setLayoutManager( flexLayout );
答案 1 :(得分:1)
您需要为StaggeredGridLayoutManager
使用RecycelrView
。 StaggeredGridLayoutManager关于这一点并使用。
答案 2 :(得分:1)
使用以下布局将根据您的文字更改您的行项目大小。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryLight"
android:padding="10dp">
<TextView
android:id="@+id/item_text"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:minWidth="100dp"
android:textColor="@color/primary_text"
android:gravity="center"
android:textSize="18sp"/>
</LinearLayout>
</LinearLayout>