Android TableLayout 拉伸单元格内容

发布于 2024-12-09 18:37:01 字数 322 浏览 1 评论 0原文

这就是问题所在。

我正在创建一个包含一些图像按钮的 TableLayout。

每行有 3 个 ImageButton,但它们的宽度不等于表格的宽度。 他们的身高也同样如此。

我想要做的就是将 ImageButtons 放在它们所在的单元格内。

即使我已经在 XML 文件中指定了它们的大小,它

auto:StretchColumns="*"

也会拉伸 ImageButtons(单元格数据)。

另外,是否有任何选项可以对行执行相同的操作?

比如自动计算单元格的边距。

Here is the issue.

I'm creating a TableLayout containing a some ImageButtons.

Each row has 3 ImageButtons but their width does not equal the width of the table.
Also the same applies for their height.

All I want to do is center the ImageButtons within the cell they are in.

The

auto:StretchColumns="*"

stretches the ImageButtons (cell data), even I have specified their size in the XML file.

Also, are there any options to do the same for the rows?

Something like calculating the margins of the cells automatically.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

傲世九天 2024-12-16 18:37:02

您是否尝试过为 ImageButton 设置 android:layout_gravity="center"

或者,您可以将每个 ImageButton 包装在 LinearLayout 中,如下所示:

<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
   <ImageButton android:layout_gravity="center" ...other attributes... />
</LinearLayout>

Have you tried setting the android:layout_gravity="center" for the ImageButtons?

Alternatively, you could wrap each ImageButton in a LinearLayout like this:

<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
   <ImageButton android:layout_gravity="center" ...other attributes... />
</LinearLayout>
伤痕我心 2024-12-16 18:37:02

表布局的子级不必只是 TableRow。表布局支持所有类型的子级,包括 LinearLayout、TextView、ImageButton 等。

不要将图像按钮包装在 TableRow 中。将其插入为一行。

<TableRow>
    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Example Table Row" />
</TableRow>

<ImageButton
    android:id="@+id/ib1"
    android:layout_width="fill_parent" <---! The Parent Is The Table Layout !--->
    android:layout_height="wrap_content"
    android:background="@drawable/coolBGImage" />

<TableRow>
BLAH BLAH BLAH
</TableRow>

要将 3 个 ImageButtons 放在一行中,请使用带有 android:orientation="horizo​​ntal" 的 LinearLayout

</TableRow>

<LinearLayout
    android:id="@+id/LL1"
    android:layout_width="fill_parent"  <---! The Parent is the TableLayout !--->
    android:layout_height="wrap_content"
    android:orientation="horizontal">

        <ImageButton
            android:id="@+id/IB1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/coolBGImage1"
            android:weight="1" />

添加接下来的两个具有相同权重的图像按钮,以使按钮均匀地划分该行。

</LinearLayout>

Children of the Table Layout do not have to be only TableRow. The Table Layout supports children of all types including LinearLayout, TextView, ImageButton, etc.

Do not wrap your image button in a TableRow. Insert it as a row.

<TableRow>
    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Example Table Row" />
</TableRow>

<ImageButton
    android:id="@+id/ib1"
    android:layout_width="fill_parent" <---! The Parent Is The Table Layout !--->
    android:layout_height="wrap_content"
    android:background="@drawable/coolBGImage" />

<TableRow>
BLAH BLAH BLAH
</TableRow>

To put 3 ImageButtons in one row use a LinearLayout with android:orientation="horizontal"

</TableRow>

<LinearLayout
    android:id="@+id/LL1"
    android:layout_width="fill_parent"  <---! The Parent is the TableLayout !--->
    android:layout_height="wrap_content"
    android:orientation="horizontal">

        <ImageButton
            android:id="@+id/IB1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/coolBGImage1"
            android:weight="1" />

Add the next two image buttons with the same weight to make the buttons divide the row evenly.

</LinearLayout>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文