JinsnHS 2022-03-13 10:30 采纳率: 53.8%
浏览 37
已结题

通过代码给TableLayout添加动态组件?

最近在尝试使用代码动态添加元素到GridLayout中,但是发现xml下androidx包下的GridLayout没法设置权重,代码也搞不明白(主要是网上好多教程好像都过时了?我服了我自己)。然后该用TableLayout,但还是不知道代码怎么实现TableLayout换行。求给予解决方案。
需要实现的效果图:

img

  • 写回答

1条回答 默认 最新

  • 小张同志正在划水 2022-03-14 16:45
    关注
    
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:stretchColumns="1">
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Open..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-O"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Save..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-S"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Save As..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-Shift-S"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <View
            android:layout_height="2dip"
            android:background="#FF909090" />
    
        <TableRow>
            <TextView
                android:text="X"
                android:padding="3dip" />
            <TextView
                android:text="Import..."
                android:padding="3dip" />
        </TableRow>
    
        <TableRow>
            <TextView
                android:text="X"
                android:padding="3dip" />
            <TextView
                android:text="Export..."
                android:padding="3dip" />
            <TextView
                android:text="Ctrl-E"
                android:gravity="right"
                android:padding="3dip" />
        </TableRow>
    
        <View
            android:layout_height="2dip"
            android:background="#FF909090" />
    
        <TableRow>
            <TextView
                android:layout_column="1"
                android:text="Quit"
                android:padding="3dip" />
        </TableRow>
    </TableLayout>
    

    TableRow这个标签内的控件视为里面为一行
    你的需求应该是:要 tableLayout 先addview(这个TableRow) ,并且这个TableRow再动态addView

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月20日
  • 创建了问题 3月13日