EditText引力不适用于wrap_content

时间:2016-02-09 10:16:21

标签: android

以下代码与其框中垂直轴上的EditText组件的重力不匹配。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:text="Test" />
</RelativeLayout>

是否有任何解决方法可以使用fallowing属性并以文本为中心?

编辑: example layout

起初可能看不到这一点,但我在中心版本中都有高度的wrap_content,但在第一个示例中,文本在其框中以definetly为中心,而在第二个示例中则非常关闭。

EDIT2:          

    <carbon.widget.LinearLayout
        android:id="@+id/linearLayout_login_footer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="@dimen/general_footer_P"
        android:background="@android:color/transparent"
        android:orientation="vertical">

        <carbon.widget.TextView
            android:id="@+id/textView_login_footer_info1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:carbon_fontFamily="sans-serif-light"
            android:gravity="center_horizontal|center_vertical"
            android:text="@string/activity_footer_bottom_info1"
            android:textColor="@color/text_edit"
            android:textSize="@dimen/general_footer_size_P" />

        <carbon.widget.LinearLayout
            android:id="@+id/linearLayout_login_footer_bottom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal|center_vertical"
            android:orientation="horizontal">

            <carbon.widget.TextView
                android:id="@+id/textView_login_footer_info2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:carbon_fontFamily="sans-serif-light"
                android:text="@string/activity_footer_bottom_info2"
                android:textColor="@color/text_edit"
                android:textSize="@dimen/general_footer_size_P" />

            <carbon.widget.TextView
                android:id="@+id/textView_login_footer_info3_link"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="2dp"
                android:autoLink="all"
                app:carbon_fontFamily="sans-serif-light"
                android:text="@string/activity_footer_bottom_info3"
                android:textColor="@color/link"
                android:textSize="@dimen/general_footer_size_P" />

        </carbon.widget.LinearLayout>
    </carbon.widget.LinearLayout>

    <carbon.widget.LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/linearLayout_login_footer"
        android:layout_alignParentTop="true"
        android:gravity="center"
        android:orientation="horizontal"
        android:weightSum="@integer/login_layout_weight_sum_P">

        <carbon.widget.LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="@integer/login_layout_left_margin_weight_P" />

        <carbon.widget.LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="@integer/login_layout_weight_P"
            android:orientation="vertical">

            <carbon.widget.Button
                android:id="@+id/button_login_facebook"
                android:layout_width="match_parent"
                android:layout_height="@dimen/login_button_height_P"
                android:layout_marginBottom="@dimen/login_layout_button_bottom_margin_P"
                android:background="@color/facebook_main"
                android:drawableLeft="@drawable/icons_fb_icon_on"
                android:drawableStart="@drawable/icons_fb_icon_on"
                app:carbon_fontFamily="sans-serif-light"
                android:text="@string/activity_login_facebook_login"
                app:carbon_textAllCaps="false"
                android:textColor="@color/text_white"
                android:textSize="@dimen/login_button_text_size_P" />


            <carbon.widget.Button
                android:id="@+id/button_login_twitter"
                android:layout_width="match_parent"
                android:layout_height="@dimen/login_button_height_P"
                android:layout_marginBottom="@dimen/login_layout_button_bottom_margin_P"
                android:background="@color/twitter_main"
                android:drawableLeft="@drawable/icons_twitter_icon_on"
                android:drawableStart="@drawable/icons_twitter_icon_on"
                app:carbon_fontFamily="sans-serif-light"
                android:text="@string/activity_login_twitter_login"
                app:carbon_textAllCaps="false"
                android:textColor="@color/text_white"
                android:textSize="@dimen/login_button_text_size_P" />

            <carbon.widget.EditText
                android:id="@+id/editText_login_email"
                android:layout_width="match_parent"
                android:layout_height="@dimen/login_button_height_P"
                android:layout_marginBottom="@dimen/login_layout_button_bottom_margin_P"
                android:background="@color/button_white"
                android:cursorVisible="true"
                android:ellipsize="end"
                app:carbon_fontFamily="sans-serif-light"
                android:gravity="center"
                android:hint="@string/activity_login_email_hint"
                android:inputType="textEmailAddress"
                android:textColor="@color/text_edit"
                android:textColorHint="@color/text_footer"
                android:textCursorDrawable="@null"
                android:textSize="@dimen/login_button_text_size_P"
                android:singleLine="true" />

            <carbon.widget.EditText
                android:id="@+id/editText_login_password"
                android:layout_width="match_parent"
                android:layout_height="@dimen/login_button_height_P"
                android:layout_marginBottom="@dimen/login_layout_button_bottom_margin_P"
                android:background="@color/button_white"
                android:cursorVisible="true"
                android:ellipsize="end"
                app:carbon_fontFamily="sans-serif-light"
                android:gravity="center"
                android:hint="@string/activity_login_password_hint"
                android:inputType="textPassword"
                android:textColor="@color/text_edit"
                android:textColorHint="@color/text_footer"
                android:textCursorDrawable="@null"
                android:textSize="@dimen/login_button_text_size_P"
                android:singleLine="true"/>

            <carbon.widget.Button
                android:id="@+id/button_login_login"
                android:layout_width="match_parent"
                android:layout_height="@dimen/login_button_height_P"
                android:layout_marginBottom="@dimen/login_layout_button_bottom_margin_P"
                android:background="@drawable/shadow_border_blue_panel"
                app:carbon_fontFamily="sans-serif"
                android:text="@string/activity_login_LOGIN"
                android:textColor="@color/text_white"
                android:textSize="@dimen/login_button_text_size_P" />

            <carbon.widget.TextView
                android:id="@+id/textView_login_forgot_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/login_layout_forgot_password_margin_top_P"
                app:carbon_fontFamily="sans-serif-light"
                android:gravity="center_horizontal|center_vertical"
                android:text="@string/activity_login_forgot_password"
                android:textColor="@color/text_edit"
                android:textSize="@dimen/login_layout_forgot_password_text_size_P" />
        </carbon.widget.LinearLayout>

        <carbon.widget.LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="@integer/login_layout_right_margin_weight_P" />
    </carbon.widget.LinearLayout>


</carbon.widget.RelativeLayout>

完整代码不合适:/ 这不是碳相关的问题,因为我的作者确信

5 个答案:

答案 0 :(得分:0)

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:text="Test" />
</RelativeLayout>

答案 1 :(得分:0)

使用android:layout_centerVertical="true"代替relativeLayouts

答案 2 :(得分:0)

首先你应该只使用android:gravity和layout_gravity for LinearLayout中的Views而不是RelativeLayouts

你可能混合了android:gravity和android:layout_gravity的定义......在你的情况下你应该添加标签android:layout_gravity:center_vertical并从Edittext中移除android:gravity ...

在LinearLayout中设置android:layout_gravity标签,你可以简单地告诉框架在其父级中设置View的重力(在你的情况下,视图是Editext,它将在其父级中得到你想要的重力,即LinearLayout)

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res   /android"
 android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="center_vertical">

   <EditText
     android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Test" />
</LinearLayout>

另一方面android:gravity设置视图内容的重力在哪里...所以在Editext中设置android:gravity只是改变了Editext文本的重力..

答案 3 :(得分:0)

如果您来到这里,您可能正在寻找:

[name]

答案 4 :(得分:-1)

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:text="Test" />
</RelativeLayout>
相关问题