如何使子视图文本的中心是其父视图的中心?

时间:2014-11-06 14:08:18

标签: android xml layout

如下图所示,我希望每个button的文本都居中,而不是在意义上,文本应该从中心开始写,但在意义上,文本的中心也应该是视图的中心。

我在xml文件中使用了gravity属性和layout_centerInParent="true",但如下所示,文本开始从视图的中心写入。

请告诉我哪个房产可以完成这项工作?

XML

<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" >
<EditText 
    android:id="@+id/et_IP"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="IP Address" />
 <EditText 
    android:layout_below="@+id/et_IP"
    android:id="@+id/et_port"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="1883" />
   <Button 
    android:layout_below="@+id/et_port"
    android:id="@+id/bt_connect"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="Connect..."/>
  <Button 
    android:layout_below="@+id/bt_connect"
    android:id="@+id/bt_clear"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="Clear"/>
  <TextView
    android:layout_below="@+id/bt_clear"
    android:gravity="center"
    android:id="@+id/tv_response"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="NO_RESPONSE"/>
  </RelativeLayout>

产品图 enter image description here

1 个答案:

答案 0 :(得分:0)

我最近做了类似的事情,将按钮放在页面上,也放在视图中。这是一个可能有用的小例子。

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" >
<LinearLayout>
<!-- Add other controls that you dont want with buttons --></LinearLayout>
<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingBottom="10dip"
        android:paddingLeft="10dip"
        android:paddingRight="10dip"
        android:paddingTop="10dip"
        android:layout_marginBottom="15dip"
        android:layout_gravity="bottom|center"
        android:layout_below="@id/login_form" >

        <Button
            android:id="@+id/edit_button"
            style="@style/Button.Green"
            android:layout_width="133dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:layout_marginTop="10dip"
            android:text="@string/OK" />

        <Button
            android:id="@+id/unlock_button"
            style="@style/Button.Green"
            android:layout_width="136dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:layout_marginTop="10dip"
            android:text="@string/unlock" />

           <Button
            android:id="@+id/reset_password_button"
            style="@style/Button.Green"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:layout_marginTop="10dip"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:text="@string/force_reset_password" />
    </LinearLayout>
</merge>

如果您在层次结构中工作,则Merge是实现视图/布局的绝佳工具。希望它有所帮助:)