最近我将RelativeLayout更改为LinearLayout,因为我的按钮文本总是放在右侧。我希望看到它集中。
更改android:ems
并不值得,因为不同的语言会传递不同的值。
这就是我的按钮的样子。由于android:layout_with
和android:layout_height
保留wrap_content
值,这无济于事。
<Button
android:id="@+id/buttonLog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/BackgroundToolbarGrey"
android:gravity="center"
android:text="@string/login"
android:textAllCaps="false"
android:textAlignment="center"
android:textColor="@color/aquamarin"
android:textSize="19sp"
/>
预览图片看起来不错。
这是我的登录屏幕的完整版本:
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".10"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".40"
android:orientation="vertical"
android:fontFamily="sans-serif" >
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/etLogin"
android:hint="@string/usernamehint"
.../>
<EditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:fontFamily="sans-serif"
android:ems="10"
android:id="@+id/etPass"
...
/>
<Button
android:id="@+id/buttonLog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/BackgroundToolbarGrey"
android:gravity="center"
android:text="@string/login"
android:textAllCaps="false"
android:textAlignment="center"
android:textColor="@color/aquamarin"
android:textSize="19sp"
android:layout_marginRight="@dimen/abc_dropdownitem_text_padding_right"
/>
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".50"
/>
</LinearLayout>
答案 0 :(得分:0)
你有这个:
android:textAlignment="gravity"
当你有这个时,这项工作:
android:gravity="center"
<?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="match_parent"
android:layout_height="0dp"
android:layout_weight=".10" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".40"
android:fontFamily="sans-serif"
android:orientation="vertical">
<EditText
android:id="@+id/etLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/usernamehint" />
<EditText
android:id="@+id/etPass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:fontFamily="sans-serif" />
<Button
android:id="@+id/buttonLog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginRight="@dimen/abc_dropdownitem_text_padding_right"
android:background="@color/BackgroundToolbarGrey"
android:gravity="center"
android:text="login"
android:textAlignment="gravity"
android:textAllCaps="false"
android:textColor="@color/EscosAquamarin"
android:textSize="19sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".50" />
</LinearLayout>
答案 1 :(得分:0)
添加
android:layout_gravity="center_horizontal"
按钮的属性应该可以解决问题。它告诉父母如何布置自己。
答案 2 :(得分:0)
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login"
android:id="@+id/buttonLog"
android:textAllCaps="false"
android:gravity="center"
android:layout_gravity="right"
android:textColor="@color/aquamarin"
android:background="@color/BackgroundToolbarGrey"
android:textAlignment="center"
android:textSize="19sp"
android:layout_marginRight="@dimen/abc_dropdownitem_text_padding_right"
/>
中的
将android:layout_gravity="right"
更改为android:layout_gravity="centre"
答案 3 :(得分:0)
问题在于这个属性在RelativeLayout中运行正常,并且在LinearLayout中使按钮变小并且没有中断
android:background="@color/BackgroundToolbarGrey"
我用我的jaca Activity类中的方法替换它:
buttonLog.setBackgroundColor(getResources().getColor(R.color.BackgroundToolbarGrey));