另一个相对布局居中问题
Posted
技术标签:
【中文标题】另一个相对布局居中问题【英文标题】:another relative layout centering issue 【发布时间】:2013-01-29 05:06:20 【问题描述】:我在相对布局末尾的确定按钮居中时遇到问题,我检查了很多类似的问题,但找不到我的错误。无论我尝试什么,确定按钮仍然偏离中心。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frag_choix_surface"
android:layout_
android:layout_
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/textViewNbPieces"
android:layout_
android:layout_
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text=""
android:textStyle="bold" />
<LinearLayout
android:id="@+id/pieces"
android:layout_marginTop="20dp"
android:layout_
android:layout_
android:layout_below="@+id/textViewSurface"
android:gravity="center"
>
<TextView
android:id="@+id/textViewChmin"
android:layout_
android:layout_
android:layout_marginLeft="30dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:text="min :" />
<kankan.wheel.widget.WheelView android:id="@+id/nb_piece_min"
android:layout_
android:layout_/>
<TextView
android:id="@+id/textViewChmax"
android:layout_
android:layout_
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:text="max :" >
</TextView>
<kankan.wheel.widget.WheelView android:id="@+id/nb_piece_max"
android:layout_
android:layout_
android:layout_marginRight="40dp"/>
</LinearLayout>
<Button
android:id="@+id/buttonOkNbPieces"
android:layout_
android:layout_
android:layout_below="@+id/pieces"
android:layout_marginTop="20dp"
android:text="OK" />
</RelativeLayout>
抱歉,我无法提供屏幕截图,我是该网站的新手,没有任何代表! 有什么想法吗?
【问题讨论】:
【参考方案1】:在RelativeLayout
中,您必须使用android:layout_centerHorizontal
、android:layout_centerVertical
或android:layout_centerInParent
属性。
将xml的按钮部分改为:
<Button
android:id="@+id/buttonOkNbPieces"
android:layout_
android:layout_
android:layout_below="@+id/pieces"
android:layout_marginTop="20dp"
android:layout_centerHorizontal="true"
android:text="OK" />
并从父RelativeLayout
中删除属性android:gravity
、android:layout_marginLeft
和android:layout_marginRight
,这些属性会影响内部项目的中心位置。所以RelativeLayout
应该这样定义:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frag_choix_surface"
android:layout_
android:layout_
android:layout_marginBottom="10dp" >
【讨论】:
感谢您的快速回答,我已经试过了,只是重新检查了一下。但按钮仍然没有移动到中心...【参考方案2】:Hope i answered your question.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frag_choix_surface"
android:layout_
android:layout_
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:orientation="vertical" >
<TextView
android:id="@+id/textViewNbPieces"
android:layout_
android:layout_
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text=""
android:textStyle="bold" />
<LinearLayout
android:id="@+id/pieces"
android:layout_marginTop="20dp"
android:layout_
android:layout_
android:layout_below="@+id/textViewSurface"
android:gravity="center"
>
<TextView
android:id="@+id/textViewChmin"
android:layout_
android:layout_
android:layout_marginLeft="30dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:text="min :" />
<kankan.wheel.widget.WheelView android:id="@+id/nb_piece_min"
android:layout_
android:layout_/>
<TextView
android:id="@+id/textViewChmax"
android:layout_
android:layout_
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:text="max :" >
</TextView>
<kankan.wheel.widget.WheelView android:id="@+id/nb_piece_max"
android:layout_
android:layout_
android:layout_marginRight="40dp"/>
</LinearLayout>
<Button
android:layout_marginLeft="111dp"
android:id="@+id/button1"
android:layout_
android:layout_
android:layout_below="@+id/pieces"
android:layout_marginTop="14dp"
android:text="Button" />
</RelativeLayout>
【讨论】:
按钮确实居中,但不再是线性布局(左侧偏移)... 简单修复,只需将android:layout_centerHorizontal="true"
添加到LinearLayout
。您可能还需要更新内部TextViews
的边距。以上是关于另一个相对布局居中问题的主要内容,如果未能解决你的问题,请参考以下文章