TableLayout 表格布局 实现展示ViewGroup内所有View

设计需求:

ViewGroup内有两个View,ViewA, ViewB,需要两个View全部展示在屏幕范围内的ViewGroup中,不允许ViewA的增长会使ViewB挤出屏幕,这就需要ViewB允许拉伸不允许收缩,,并且ViewA允被收缩。

过程如下:

当ViewA缩小时,ViewB跟随拉伸:

如图所示:

当ViewA宽度过长,假设9000dp或者更大,ViewB因为不允许收缩,所以ViewB还原到设置width后保持不变,不会被挤出屏幕,ViewA自动收缩

如图所示:

抽象逻辑以后,要实现这种设计需求,就必须满足以上条件,这是如果使用LinerLayout,RelativeLayout,FrameLayout,因为没有拉伸缩放属性设置,很难实现需求。

此需求和Excel表格实现效果十分相似,所以想到TableLayout就可以完美解决问题,于是代码如下:

<TableLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:stretchColumns="1" //设置第一列允许被拉伸android:shrinkColumns="0"> //设置滴零列允许收缩<TableRow><Buttonandroid:id="@+id/btn01"android:layout_width="9000dp"android:layout_height="200dp"android:background="@color/starfish_blue_normol"android:text="允许被收缩\nViewA"></Button><Buttonandroid:id="@+id/btn02"android:layout_width="120dp"android:layout_height="200dp"android:background="@color/red"android:text="允许被拉伸\nViewB"></Button></TableRow></TableLayout>

每一幢房子都有一种不同的颜色,

TableLayout 表格布局 实现展示ViewGroup内所有View

相关文章:

你感兴趣的文章:

标签云: