gpt4 book ai didi

android - 我如何将单元格高度设置为它在 android TableLayout 中的宽度?

转载 作者:行者123 更新时间:2023-11-30 04:00:05 25 4
gpt4 key购买 nike

我的 TableLayout 如下:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">

<TableRow>
<Button
android:id="@+id/b1"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center" />
<Button
android:id="@+id/b2"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center" />
<Button
android:id="@+id/b3"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center" />
</TableRow>
</TableLayout>

每个 Button 具有相同的宽度。我希望这些按钮的高度与其宽度完全相同。我尝试通过以下方式以编程方式进行:

Button b1 = (Button) findViewById(R.id.b1);
b1.setHeight(b1.getWidth());

但它不起作用(它给了我 0 的值)。我想是因为当我这样做时(在 onCreate 方法内)按钮尚未设置。

最佳答案

首先,你是对的,你得到的值为 0,因为当你试图获取按钮 width 时屏幕还没有绘制。

如我所见,唯一可能的做法是在 XML 文件中为它们提供预定义值。

例如:

  <Button
android:id="@+id/b1"
android:layout_width="25dip"
android:layout_height="25dip"
android:gravity="center" />

以编程方式设置宽度和高度:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

btnWidth = metrics.heightPixels/3 - 50;//gap
btnHeight = btnWidth;

Button b1 = (Button) findViewById(R.id.b1);
b1.setHeight(btnWidth);
b1.setWidth(btnWidth);

关于android - 我如何将单元格高度设置为它在 android TableLayout 中的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com