如何从中心对齐按钮文本

时间:2014-10-22 09:32:44

标签: android xml button

在我的应用程序中,我显示了两个按钮。下面显示了哪些文本。如何从同一行(中心)对齐两个文本。

因此很明显,我想开始按钮文字“Amiyo”& “Amiyo Biswas”来自同一线(中心)

这是我的XML:

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight=".75"
    android:orientation="vertical"
    android:layout_marginTop="15dp"

    >



    <Button          
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".10"
        android:text="Amiyo"           
        android:gravity="center"
        android:textAlignment="gravity"
        />

     <Button          
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".10"
        android:text="Amiyo Biswas"           
        android:gravity="center_horizontal|center_vertical"
        android:textAlignment="gravity"
        />

    </LinearLayout>

enter image description here

我想要这个对齐enter image description here

5 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望按钮文本彼此对齐。以下仅通过垂直居中来实现。水平对齐在左边,我添加了一些填充,所以它仍然看起来有点水平居中。

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight=".75"
    android:orientation="vertical"
    android:layout_marginTop="15dp"
    >

    <Button
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".10"
        android:text="Amiyo"
        android:gravity="center_vertical"
        android:paddingLeft="120dp"
        />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".10"
        android:text="Amiyo Biswas"
        android:gravity="center_vertical"
        android:paddingLeft="120dp"
        />

</LinearLayout>

Screenshot

请注意,手动设置填充以使其看起来水平居中仅适用于一种屏幕尺寸。如果您在具有不同屏幕宽度的其他设备上运行它,它将再次显示错误。要解决此问题,您必须在代码中进行一些计算并以编程方式设置填充。但那时我会放弃并将其设置为左对齐。或者开始学习自己编写小部件并正确解决这个问题,但这需要一些时间。

答案 1 :(得分:0)

试试这个

首先将文本对齐方式设置为left | center_vertical,然后设置文本的左边距

<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity"
tools:ignore="HardcodedText" >

 <Button
    android:id="@+id/left"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="left|center_vertical"
    android:paddingLeft="50dp"
    android:text="Button 1" />

  <Button
    android:id="@+id/left"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="left|center_vertical"
    android:paddingLeft="50dp"
    android:text="Button 2" />

</LinearLayout> 

答案 2 :(得分:0)

尝试像这样编码..我试过这个工作(同一行上的两个按钮也居中)             

   <Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginLeft="50dp"
    android:text="Amiyo" />

  <Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Amiyo Biswas" />

</LinearLayout>

将其复制到xml文件中......

尝试使用Listview: - 请参考此链接: - (http://androidexample.com/Create_A_Simple_Listview_-_Android_Example/index.php?view=article_discription&aid=65&aaid=90)     

     <ListView
          android:id="@+id/list"
          android:layout_height="wrap_content"
          android:layout_width="match_parent">
     </ListView>

</LinearLayout>

答案 3 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

在这里我玩重量,所以可能符合你的要求。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <View
        android:layout_width="0dp"
        android:layout_height="1dp"
        android:layout_weight="0.35"/>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.65"
        android:orientation="vertical">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ONE MILE"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="FIVE MILES"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TEN MILES"/>
    </LinearLayout>
</LinearLayout>

答案 4 :(得分:-1)

此代码是硬编码的,您可以尝试:

<LinearLayout 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"
android:orientation="vertical">


 <Button  
        android:id="@+id/button1"        
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="87dp"
        android:text="Amiyo"  />         

 <Button          
   android:id="@+id/button2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:paddingLeft="105dp" 
    android:text="Amiyo Biswas"  />       

</LinearLayout>