我在垂直LinearLayout
中有两个按钮。是否有可能使它们具有相同的宽度,理想情况下与最宽的文本一样宽?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="codeguru.swiss.MainFragment">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">
<Button
android:id="@+id/newTournament"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/newTournament" />
<Button
android:id="@+id/loadTournament"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/loadTournament" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:1)
使用以下xml代码
<LinearLayout
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">
<Button
android:id="@+id/newTournament"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/newTournament" />
<Button
android:id="@+id/loadTournament"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/loadTournament" />
</LinearLayout>
在您的代码中,您正在使用wrap_content,因此按钮将根据内容占用空间。因此,如果您希望两个按钮的长度相同,则必须使用按钮宽度来填充父级宽度。
答案 1 :(得分:1)
在提出这个问题之后,我发现我可以使用TableLayout
代替LinearLayout
来获得所需效果。
答案 2 :(得分:1)
用这个......
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">
<Button
android:id="@+id/newTournament"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="kkkkkkkkkkkkkkk" />
<Button
android:id="@+id/loadTournament"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/loadTournament" />
</LinearLayout>
答案 3 :(得分:0)
使用以下代码段:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
>
<Button
android:id="@+id/newTournament"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/newTournament" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
>
<Button
android:id="@+id/loadTournament"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/loadTournament" />
</LinearLayout>
答案 4 :(得分:0)
您可以像这样均匀地分配布局宽度......
下面我使用了它将分配总重量的重量,你可以设置每个元素的总重量,我会展示你将如何参考我的设计图片的地方
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
答案 5 :(得分:-1)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MyActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<Button
android:id="@+id/btnEnable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Enable"/>
<Button
android:id="@+id/btnDisable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Disable"/>
<Button
android:id="@+id/btnLock"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Lock"/>
<Button
android:id="@+id/btnSetPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Set Password"/>
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
</View>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btnWipeData"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Wipe Data"/>
<android.support.v7.widget.AppCompatCheckBox
android:id="@+id/chkWipeExtStorage"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Also Wipe External Storage"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<Button
android:id="@+id/btnClearPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Clear Password" />
<Button
android:id="@+id/btnLockTask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Lock Task" />
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
答案 6 :(得分:-3)
使用layout_alignRight和layout_alightLeft:
<Button
android:id="@+id/loadTournament"
android:layout_alignRight="@+id/newTournament"
android:layout_alignLeft="@+id/newTournament"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/loadTournament" />
答案 7 :(得分:-3)
您可以使用layout_weight
。只需使用如下,
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical"
>
<Button
android:id="@+id/newTournament"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/newTournament"
/>
<Button
android:id="@+id/loadTournament"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/loadTournament"
/>