linearlayout中的textview对齐(错误的边距和填充)

时间:2014-04-27 17:51:58

标签: android android-layout

我正在尝试使用与LinearLayout中的后续EditText水平对齐的TextView。不幸的是,它看起来(对我来说)Parent LinearLayout增加了比XML定义的空间更多的空间。当我同时使用两个视图时,这只会发生。如果我使用2个EditText或按钮,我看不到任何问题。

E.g。 Top是我的结果,低于预期的

IMAGE:compare.gif

当我删除EditText时,它看起来像预期的那样:

图片:compare2.gif

图片: https://drive.google.com/folderview?id=0B4ipfo7vG5R9N0hBZm1iLUFIV2c&usp=sharing

    <LinearLayout
    android:background="#ccc"
    android:padding="0dp"
    android:orientation="horizontal"
    android:layout_margin="0dp"
    android:layout_width="match_parent"
    android:layout_height="48dp">

    <TextView
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_margin="8dp"
        android:background="#ff0000"/>

    <EditText
        android:id="@+id/editText_name"

        android:singleLine="true"
        android:layout_height="40dp"
        android:layout_margin="4dp"
        android:layout_width="match_parent"
        android:hint="@string/label_category"
        android:maxLength="64"/>

    </LinearLayout>

我正在使用Android Studio 0.5.1

有什么我忽略的吗?提前谢谢!

5 个答案:

答案 0 :(得分:0)

layout_width中的

EditText参数应为:

 android:layout_width="wrap_content"

并进一步使用layout_weight进行TextViewEditText之间的空间分配。

答案 1 :(得分:0)

尝试将android:gravity="center"添加到LinearLayout

您也可以尝试将android:layout_gravity="center_vertical"添加到两个View本身。

如果您仍然遇到问题,那么您可以查看此博文,其中讨论了如下布局视图: http://thinkandroid.wordpress.com/2010/01/14/how-to-position-views-properly-in-layouts/

答案 2 :(得分:0)

<LinearLayout
    android:background="#ccc"
    android:padding="2dp"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="48dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="Test"
        android:gravity="center"
        android:layout_weight="0.2"
        android:background="#ff0000"/>

    <EditText
        android:id="@+id/editText_name"
        android:singleLine="true"
        android:layout_weight="0.8"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:hint="@string/label_category"
        android:maxLength="64"/>

    </LinearLayout>

请改用它,看看它是否满足您的需求......

THX

答案 3 :(得分:0)

// try this way, hope this will help you...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#ccc"
    android:layout_width="match_parent"
    android:gravity="center_vertical"
    android:layout_height="48dp">

    <TextView
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_margin="8dp"
        android:background="#ff0000"/>

    <EditText
        android:id="@+id/editText_name"
        android:singleLine="true"
        android:layout_height="40dp"
        android:layout_margin="4dp"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:hint="@string/label_category"
        android:maxLength="64"/>

</LinearLayout>

答案 4 :(得分:0)

尝试将此代码文本视图水平对齐,并为所有屏幕编辑文本修复。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#ccc"
    android:orientation="horizontal"
    android:weightSum="1"
    android:gravity="center"
     >

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginRight="5dp"
        android:layout_weight=".2"
        android:background="#ff0000" />

    <EditText
        android:id="@+id/editText_name"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".8"
        android:hint="@string/label_category"
        android:maxLength="64"
        android:singleLine="true" />

</LinearLayout>