TableLayout 和 layout_weight 不起作用
TableLayout and layout_weight doesn't work
尝试使用 weightSum=100
和 android:layout_weight
构建计算器视图,其中常规按钮应占屏幕的 25%。 0 digit @+id/button18
按钮的大小应该是普通按钮的两倍,所以它被设置为 android:layout_weight="50"
但是它没有占据所需的 space。为什么会这样?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<Button
android:id="@+id/button13"
android:layout_width="wrap_content"
android:layout_height="74dp"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="1"
android:textSize="30sp" />
<Button
android:id="@+id/button14"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="2" />
<Button
android:id="@+id/button15"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="3" />
<Button
android:id="@+id/button16"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/orange"
android:text="+"
android:textColor="@android:color/white"
android:textSize="30sp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<Button
android:id="@+id/button18"
android:layout_height="74dp"
android:layout_weight="50"
android:background="@color/lighterGrey"
android:text="0" />
<Button
android:id="@+id/button15"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="." />
<Button
android:id="@+id/button16"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/orange"
android:text="="
android:textColor="@android:color/white"
android:textSize="30sp" />
</TableRow>
</TableLayout>
</LinearLayout>
我认为,您没有为 button18 和 button15
设置宽度
android:layout_width="wrap_content"
但我建议您在将权重设置为宽度时使用 width="0dp"
而不是 width="wrap_content"
以确保准确性。
你应该使用 android:layout_width="0dp"
.
更改所有 Button
的宽度 android:layout_width="0dp"
.
试试这个。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<Button
android:id="@+id/button13"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="1"
android:textSize="30sp"/>
<Button
android:id="@+id/button14"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="2"/>
<Button
android:id="@+id/button15"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="3"/>
<Button
android:id="@+id/button16"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/orange"
android:text="+"
android:textColor="@android:color/white"
android:textSize="30sp"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<Button
android:id="@+id/button18"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50"
android:background="@color/lighterGrey"
android:text="0"/>
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="."/>
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/orange"
android:text="="
android:textColor="@android:color/white"
android:textSize="30sp"/>
</TableRow>
</TableLayout>
</LinearLayout>
输出
尝试使用 weightSum=100
和 android:layout_weight
构建计算器视图,其中常规按钮应占屏幕的 25%。 0 digit @+id/button18
按钮的大小应该是普通按钮的两倍,所以它被设置为 android:layout_weight="50"
但是它没有占据所需的 space。为什么会这样?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<Button
android:id="@+id/button13"
android:layout_width="wrap_content"
android:layout_height="74dp"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="1"
android:textSize="30sp" />
<Button
android:id="@+id/button14"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="2" />
<Button
android:id="@+id/button15"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="3" />
<Button
android:id="@+id/button16"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/orange"
android:text="+"
android:textColor="@android:color/white"
android:textSize="30sp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<Button
android:id="@+id/button18"
android:layout_height="74dp"
android:layout_weight="50"
android:background="@color/lighterGrey"
android:text="0" />
<Button
android:id="@+id/button15"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="." />
<Button
android:id="@+id/button16"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/orange"
android:text="="
android:textColor="@android:color/white"
android:textSize="30sp" />
</TableRow>
</TableLayout>
</LinearLayout>
我认为,您没有为 button18 和 button15
设置宽度android:layout_width="wrap_content"
但我建议您在将权重设置为宽度时使用 width="0dp"
而不是 width="wrap_content"
以确保准确性。
你应该使用 android:layout_width="0dp"
.
更改所有 Button
的宽度 android:layout_width="0dp"
.
试试这个。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<Button
android:id="@+id/button13"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="1"
android:textSize="30sp"/>
<Button
android:id="@+id/button14"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="2"/>
<Button
android:id="@+id/button15"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="3"/>
<Button
android:id="@+id/button16"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/orange"
android:text="+"
android:textColor="@android:color/white"
android:textSize="30sp"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<Button
android:id="@+id/button18"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50"
android:background="@color/lighterGrey"
android:text="0"/>
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/lighterGrey"
android:text="."/>
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="25"
android:background="@color/orange"
android:text="="
android:textColor="@android:color/white"
android:textSize="30sp"/>
</TableRow>
</TableLayout>
</LinearLayout>
输出