【问题标题】:why is my text in editText not centered horizontally?为什么我在editText 中的文本没有水平居中?
【发布时间】:2014-05-06 03:40:01
【问题描述】:

我有这个简单的 xml 块:

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" 
                    android:gravity="center">

                    <EditText
                        android:id="@+id/verificationCodeEditText"
                        style="@style/textOnBg"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="@android:color/transparent"
                        android:inputType="phone"
                        android:textColor="#516063"
                        android:textColorHint="#b4c8cf"
                        android:imeOptions="actionSend"
                        android:layout_gravity="center"
                        android:textSize="25dp" >
                    </EditText>
                </LinearLayout>

但是,当我将文本放入此 editText 时,光标向左一点。

只有在填充了 80% 的 editText 后,文本才会显得居中。

<style name="textOnBg" parent="android:Widget.TextView">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">#32717f</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textSize">18sp</item>
</style>

更新

试过这个:但没有帮助

                    <EditText
                        android:id="@+id/verificationCodeEditText"
                        style="@style/textOnBg"
                        android:layout_width="match_parent"

【问题讨论】:

  • 我的意思是editText。对不起
  • 设置宽度以填充父级然后尝试:android:layout_width="fill_parent"
  • 你能发布你的风格textOnBg吗?
  • 这个问题有两个部分。您没有指定使用gravity 将edittext 中的文本居中,除非您的编辑文本的宽度不仅仅是文本的长度。那么左对齐与居中是一样的。您应该在编辑文本和线性布局上使用match_parent 宽度,但这取决于您想要的整体布局

标签: java android android-layout layout textview


【解决方案1】:

您可能需要为EditText 指定一个设置宽度,然后重力才能生效。设置成fill_parent,看看有没有效果。

【讨论】:

    【解决方案2】:

    请尝试

        android:gravity="center_horizontal"
    

    【讨论】:

    • @EladBenda 你在editText 中没有任何gravity 属性,只有layout_gravity,这是不同的
    • 如果您希望文本位于 Edittext 的中心,请使用此属性。使用 layout_gravity 它只会改变视图的重力,而不是视图内的任何东西。
    • 为什么需要 width:match_parent?
    【解决方案3】:

    试试这个..

    android:layout_width="match_parent"android:gravity="center" 发送给您的EditText

    <EditText
        android:id="@+id/verificationCodeEditText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@android:color/transparent"
        android:imeOptions="actionSend"
        android:inputType="phone"
        android:text="sdfsdfsdf"
        android:textColor="#516063"
        android:gravity="center"
        android:textColorHint="#b4c8cf"
        android:textSize="25dp" >
    </EditText>
    

    【讨论】:

    • @EladBenda 我还添加了android:gravity="center"
    • @EladBenda 无需将宽度指定为match_parent,您也可以使用wrap_content
    【解决方案4】:

    试试看

     <EditText
            android:id="@+id/verificationCodeEditText"
            style="@style/textOnBg"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@android:color/transparent"
            android:gravity="center_horizontal"
            android:imeOptions="actionSend"
            android:inputType="phone"
            android:textColor="#516063"
            android:textColorHint="#b4c8cf"
            android:textSize="25dp" >
        </EditText>
    

    【讨论】:

      【解决方案5】:

      你可以这样设置重力:

      android:gravity="center_horizontal"
      

      【讨论】:

        【解决方案6】:

        试试这个:

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="fill_parent"
            android:layout_height="match_parent" >
        
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >
        
                <EditText
                    android:id="@+id/verificationCodeEditText"
                    style="@style/textOnBg"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:background="@android:color/transparent"
                    android:gravity="center"
                    android:imeOptions="actionSend"
                    android:inputType="phone"
                    android:paddingLeft="5dip"
                    android:paddingRight="5dip"
                    android:textColor="#516063"
                    android:textColorHint="#b4c8cf"
                    android:textSize="25dp" >
                </EditText>
            </LinearLayout>
        
        </RelativeLayout>
        

        希望这对:)有帮助。

        【讨论】:

          【解决方案7】:

          使用这个:

          android:layout_centerHorizontal="true"
          

          【讨论】:

          • 父级是LinearLayout,您的建议仅适用于RelativeLayout..
          猜你喜欢
          • 2023-02-15
          • 1970-01-01
          • 2015-08-05
          • 1970-01-01
          • 2019-10-12
          • 1970-01-01
          • 2011-03-29
          • 2023-02-13
          • 2019-07-21
          相关资源
          最近更新 更多