我的App中有这个XML布局(一个按钮的例子):
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scrollViewMain"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff0e8" >
///some views
<Button
android:id="@+id/btnVysledkySportka"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/chckSprotka"
android:layout_alignRight="@+id/chckSprotka"
android:layout_alignTop="@+id/chckSprotka"
android:layout_margin="3dp"
android:layout_toRightOf="@+id/textView3"
android:background="#ffe118"
android:gravity="center"
android:onClick="vysledkySportka"
android:text="Archiv výsledků"
android:textStyle="bold" />
///some views
</RelativeLayout>
</ScrollView>
但是当我在Android 4.3上启动我的应用程序时,按钮文本不在按钮的中心。查看屏幕截图(红色矩形):
哪里有问题?
修改
答案 0 :(得分:1)
指定时:
android:layout_alignBottom="@+id/chckSprotka"
android:layout_alignRight="@+id/chckSprotka"
android:layout_alignTop="@+id/chckSprotka"
它确实使按钮的底部/右侧/顶部边缘与给定锚点视图ID&amp;的底部边缘匹配。容纳底部/右侧/上边距, 但 ,同时android_gravity
不考虑合成高度/宽度。
gravity
的{{1}}根据text
center
和wrap_content
的{{1}} layout_height
。
您可以通过设置layout_width
和layout_height
的值(例如,200dp和100dp来尝试)验证这一点,然后您将获得layout_width
重力text
,但对于那个高度和宽度。
要确认相同,您可以为center
使用容器LinearLayout
,如:
Button
将 <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/chckStastnych"
android:layout_alignRight="@+id/chckStastnych"
android:layout_alignTop="@+id/chckStastnych"
android:layout_margin="3dp"
android:layout_toRightOf="@+id/textView3"
android:background="#ffe118" >
<Button
android:id="@+id/btnVysledkyStastnych"
android:layout_gravity="center"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffe118"
android:gravity="center"
android:onClick="vysledkyStastnych"
android:text="Archiv výsledků"
android:textStyle="bold" />
</LinearLayout>
的{{1}}设为gravity
然后将LinearLayout
设置为center
或如上所示,使用center
作为按钮父亲Button
中的layout_gravity
当你对所有4个按钮执行此操作时,这将作为一个解决方案,但是如果重构xml并避免这种嵌套,可能会有更好的选择。
答案 1 :(得分:-1)
试试这个:
<Button
android:id="@+id/btnVysledkySportka"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/chckSprotka"
android:layout_alignRight="@+id/chckSprotka"
android:layout_alignTop="@+id/chckSprotka"
android:layout_margin="3dp"
android:layout_toRightOf="@+id/textView3"
android:background="#ffe118"
android:gravity="center_vertical"
android:onClick="vysledkySportka"
android:text="Archiv výsledků"
android:textStyle="bold" />