Android 线性布局未显示其所有子项
在创建了一个Android 线性布局未显示其所有子项,android,xml,android-linearlayout,android-imageview,android-cardview,Android,Xml,Android Linearlayout,Android Imageview,Android Cardview,在创建了一个LinearLayout并将ImageViews作为子项后,我注意到只显示了第一行项目。我以为LinearLayout会根据需要自动将其子项包装到新行上?宽度看起来不错,但高度不合适 预期结果 预期蓝图(ImageViewcount不可缩放) 出于某种原因,当我在另一个视图中创建LinearLayout时,宽度显示正确,但它似乎从未调整其高度以适应并显示其中的所有子对象 当前结果 水平线布局不会自动换行到第二条线以适合其子线。根据Android文档,它只支持一个方向: Line
LinearLayout
并将ImageView
s作为子项后,我注意到只显示了第一行项目。我以为LinearLayout
会根据需要自动将其子项包装到新行上?宽度看起来不错,但高度不合适
预期结果
预期蓝图(ImageView
count不可缩放)
出于某种原因,当我在另一个视图中创建LinearLayout时,宽度显示正确,但它似乎从未调整其高度以适应并显示其中的所有子对象
当前结果
水平线布局不会自动换行到第二条线以适合其子线。根据Android文档,它只支持一个方向: LinearLayout是一个视图组,它将所有子视图对齐在一个视图组中 垂直或水平方向
您所能做的就是使用来实现包装行为。不要使用6个imageView进行水平线性布局
创建新的垂直线性布局,并在其上为每个3图像视图放置两个水平线性布局。此
线性布局的行为是“按预期”的:它将以水平或垂直线显示其子级
由于您的蓝图中的所有子<代码>视图>看起来大小相似,请考虑切换到<代码> GridLayout <代码>,它可以作为ANDROIDX库(例如,ANDROIDX.GRIDayDe:GrIDayDay:1.0.0)。
对于具有不同尺寸的子视图,FlexboxLayout是一个很好的选择。它于2017年2月在一次会议上推出。androidx有一个可用的版本:“com.google.android:flexbox:1.1.0”
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cv_facilities">
<LinearLayout
android:id="@+id/ll_facilities"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<LinearLayout
android:id="@+id/ll_titlerow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_expandcollapsearrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp" />
<ImageView
android:id="@+id/iv_topicsymbol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp" />
<LinearLayout
android:id="@+id/ll_symbols"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_symbol_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_language" />
<ImageView
android:id="@+id/iv_symbol_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_pets" />
<ImageView
android:id="@+id/iv_symbol_c"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_verified_user" />
<ImageView
android:id="@+id/iv_symbol_d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_transport" />
<ImageView
android:id="@+id/iv_symbol_e"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_seat" />
<ImageView
android:id="@+id/iv_symbol_f"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_fingerprint" />
<ImageView
android:id="@+id/iv_symbol_g"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_areoplane_depart" />
<ImageView
android:id="@+id/iv_symbol_h"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_areoplane_arrive" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>