最近做一个学习报告界面如图
其中02知识点掌握度展示不全.明明18个item,而UI上只展示三个.....
这是网上说,用RelativeLayout
<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dimen_50dp"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/circle_recycler" android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout>
经过临床测试,这种方案,对谷歌的原生控件,或者嵌套层数不深的界面,很有效.
但是在我的项目中,还是不能正常展示,特别是RecyclerView嵌套自定义View时,这时不能再在RecyclerView上下手,
重写RecyclerView方法还是不行,父布局用Relative用权重等还是不行
最后的解决办法,是在每个条目中使用权重
其中,每个item的布局全部用权重,这个可以解决嵌套层数过多问题
现在展示出部分代码,注意,其中的数据是平板尺寸,
<RelativeLayout android:layout_width="match_parent" android:layout_height="@dimen/dimen_244dp" android:layout_centerInParent="true"> <RelativeLayout android:id="@+id/chart_linear" android:layout_width="@dimen/dimen_216dp" android:layout_height="@dimen/dimen_216dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true"> <com.github.mikephil.charting.charts.PieChart android:id="@+id/pie_chart" android:layout_width="match_parent" android:layout_height="match_parent" /> <com.github.mikephil.charting.charts.PieChart android:id="@+id/inside_pie_chart" android:layout_width="@dimen/dimen_150dp" android:layout_height="@dimen/dimen_150dp" android:layout_centerInParent="true" /> <com.github.mikephil.charting.charts.PieChart android:id="@+id/innermost_pie_chart" android:layout_width="@dimen/dimen_84dp" android:layout_height="@dimen/dimen_84dp" android:layout_centerInParent="true" /> </RelativeLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <View android:layout_width="@dimen/dimen_0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <LinearLayout android:layout_width="@dimen/dimen_0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/dimen_35dp" android:orientation="horizontal"> <ImageView android:layout_width="0dp" android:layout_height="@dimen/dimen_28dp" android:layout_marginTop="@dimen/dimen_7dp" android:layout_weight="1" android:background="@mipmap/home_work_ofter_line" /> <TextView android:id="@+id/text_one" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/dimen_10dp" android:minWidth="@dimen/dimen_80dp" android:text="60.22%" android:textColor="@color/text_blank" android:textSize="@dimen/sp_18sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/dimen_35dp" android:orientation="horizontal"> <ImageView android:layout_width="0dp" android:layout_height="@dimen/dimen_28dp" android:layout_marginTop="@dimen/dimen_7dp" android:layout_weight="1" android:background="@mipmap/home_work_before_line" /> <TextView android:id="@+id/text_two" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/dimen_10dp" android:minWidth="@dimen/dimen_80dp" android:text="60.22%" android:textColor="@color/text_blank" android:textSize="@dimen/sp_18sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/dimen_35dp" android:orientation="horizontal"> <ImageView android:layout_width="0dp" android:layout_height="@dimen/dimen_28dp" android:layout_marginTop="@dimen/dimen_7dp" android:layout_weight="1" android:background="@mipmap/home_work_gao_fen_line" /> <TextView android:id="@+id/text_three" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/dimen_10dp" android:minWidth="@dimen/dimen_80dp" android:text="60.22%" android:textColor="@color/text_blank" android:textSize="@dimen/sp_18sp" /> </LinearLayout> </LinearLayout> </LinearLayout> </RelativeLayout>