android 在4.0的时候新增一个控件GridLayou,GridLayou使用起来非常的灵活,
如果要写很多需要对齐的布局就不用线性布局或者相对布局,gridlayou 好比一个excel表格,每个表格中放一个控件,放什么控件随你
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2"
android:rowCount="2">
<TextView
android:gravity="center_vertical"
android:text="质量:"/>
<com.gc.materialdesign.views.Slider
android:id="@+id/slider_quality"
android:layout_width="wrap_content"
android:layout_gravity="fill_horizontal"
android:background="#1E88E5"
android:gravity="fill"
materialdesign:max="100"
materialdesign:min="0"
materialdesign:showNumberIndicator="true"/>
<TextView
android:gravity="center_vertical"
android:text="图片大小:"/>
<com.gc.materialdesign.views.Slider
android:id="@+id/slider_size"
android:layout_width="wrap_content"
android:layout_gravity="fill_horizontal"
android:background="#1E88E5"
android:gravity="fill"
materialdesign:max="100"
materialdesign:min="0"
materialdesign:showNumberIndicator="true"/>
</GridLayout>
使用方式大概是这样,如果需要详细使用看其他博客,这篇博客主要是解决控件的填充宽度问题,假设我上面的那个slider控件需要填满gridlayout控件,我指定为grivaty=fill,就可以了,但是这样有个弊端就是控件会超出屏幕之外(gridlayout中指定Layout_width或者Layout_Heihth没用)如果你的控件需要填满gridlayout中的表格并且不要这个控件超出表格就需要指定
android:layout_width="wrap_content"
android:layout_gravity="fill_horizontal"
就可以了,否则控件会超出屏幕之外.
GridLayout 中的控件可以不用指定宽度和高度他会自动设置为包裹内容,如果需要填满父窗体指定android:gravity="fill"
子控件如果没有指定行和列,默认第一个子孩子是从0行0列