我的复选框似乎与我的布局相当紧张。
这就是我想要的:
Button | CheckBox | TextView
但CheckBox正在推动我的textview方式
Button | CheckBox | TextView
我的xml布局:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="15dp">
<Button
android:id="@+id/signin_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginLeft="7dp"
android:background="@layout/bordersignin"
android:textColor="#ffffff"
android:text="@string/signin" />
<CheckBox
android:id="@+id/staysignedin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/staysignedin" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center"
android:text="Stay signed in" />
</LinearLayout>
Upadated代码,它仍然将文本推向右侧。 Wieghts对它们的水平运动没有影响。
<Button
android:id="@+id/signin_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:background="@layout/bordersignin"
android:padding="5dp"
android:text="@string/signin"
android:textColor="#ffffff"
android:layout_weight="1" />
<CheckBox
android:id="@+id/staysignedin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".1"
android:text="@string/staysignedin" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="10"
android:text="Stay signed in" />
</LinearLayout>
完整解决方案 -----------------------------------
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1" >
<Button
android:id="@+id/signin_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_weight=".8"
android:background="@layout/bordersignin"
android:padding="5dp"
android:text="@string/signin"
android:textColor="#ffffff" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="25dp"
android:layout_marginTop="40dp"
android:layout_weight=".2" >
<CheckBox
android:id="@+id/staysignedinCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="6dp"
android:text="@string/staysignedin" />
<TextView
android:id="@+id/staysignedinText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@id/staysignedinCheck"
android:layout_gravity="center"
android:layout_marginTop="9dp"
android:text="Stay signed in" />
</RelativeLayout>
</LinearLayout>
登录按钮的结果,复选框和“保持登录状态”textview
答案 0 :(得分:0)
你有一些选择:
将LinearLayout的宽度更改为android:layout_width="wrap_content"
。但这不会填满整个宽度。我不知道这是否是你想要的设置。
对于所有三个视图,请使用:android:layout_weight="1"
。然后每个View都将拥有相同的房间。 CodeMagic如何表示,你应该为LinearLayout的水平/垂直方向设置高度/宽度为0dp,以防止视图被绘制两次。
答案 1 :(得分:0)
你CheckBox
对我来说似乎是无辜的。问题出在这里:
android:layout_gravity="left|center"
使用layout_gravity
,您告诉父母如何将TextView置于其自身内部。
要在TextView中定位文本(示例):如果TextView填满整个屏幕宽度,并且需要将文本置于TextView中心,则可以使用android:gravity="center"
。这会将文本置于 TextView中心。
要解决此问题,请将TextView的设置替换为:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stay signed in" />
答案 2 :(得分:0)
这对你有帮助..
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:orientation="horizontal" >
<Button
android:id="@+id/signin_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="7dp"
android:layout_weight="1"
android:background="#ff0000"
android:padding="5dp"
android:text="Signing"
android:textColor="#ffffff" />
<CheckBox
android:id="@+id/staysignedin"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:text="StaySignedin" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:text="Stay signed in" />
</LinearLayout>
答案 3 :(得分:0)
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="15dp">
<Button
android:id="@+id/signin_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="5dp"
android:layout_marginLeft="7dp"
android:background="@layout/bordersignin"
android:textColor="#ffffff"
android:text="@string/signin" />
<CheckBox
android:id="@+id/staysignedin"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="@string/staysignedin" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Stay signed in" />
</LinearLayout>