【问题标题】:How to have same height for TextView as for EditText?如何使 TextView 的高度与 EditText 的高度相同?
【发布时间】:2011-03-06 16:19:59
【问题描述】:

我有一个包含 3 行的视图,其中一个包含 2 个 TextView,另外 2 个包含一个 TextView 和一个 EditText。我怎样才能使所有这些行的高度相同,并且在一行中替换 EditText 的 TextView 的大小与其他 EditTexts 的大小相同?

问候, 埃迪

此处的示例代码: 我希望第一行中的第二个 TextView 具有与以下行中的 EditText 相同的大小(视图本身和其中的文本)。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
<LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
    <TextView
            android:text="Datum:"
            android:layout_width="60dip" 
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            />
    <TextView
            android:id="@+id/datum"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_alignParentRight="true"
            />
</LinearLayout>
<LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
    <TextView
            android:text="Zweck:"
            android:layout_width="60dip" 
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            />
    <EditText
            android:id="@+id/title"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_alignParentRight="true"
            android:inputType="textNoSuggestions"
            />
</LinearLayout>
<LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
    <TextView
            android:text="Betrag:"
            android:layout_width="60dip" 
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            />
    <EditText
            android:id="@+id/value"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:inputType="numberDecimal|textNoSuggestions"
            android:layout_alignParentRight="true"
            />
</LinearLayout>

【问题讨论】:

    标签: android size textview android-edittext


    【解决方案1】:

    你能发布你的示例代码吗?

    您可以通过使用 android:layout_width="wrap_content" 和/或 android:width="300dp"(高度相同)来使用不同的尺寸。还要检查边距和填充。

    如果您需要更加动态,您可以考虑使用 android:layout_weight ,即让 2 个按钮具有相等的宽度并填充您要设置的父视图的水平空间: android:layout_width="wrap_content" android_layout:weight="0.5".

    编辑:它们的大小似乎都相同(填充左侧描述留下的空间)。是否要增加 TextView 的字体大小?

    您也可以在所有三列中使用 EditText,但将第一列设置为 android:editable="false"。

    【讨论】:

    • 我在原始问题中添加了布局。
    • 有 2 个“问题”。首先是文字高度不一样。第二,EditText 也高于 TextView,与只有 TextView 的行相比,该行的高度更大。如果没有更简单的解决方案,一个不可见的 EditText 应该可以解决第二个问题,但是仍然有另一个文本高度,如果我调整它,那么整个高度可能也会改变(然后再次不同)。
    • 您可以通过手动设置高度并在 TextViews 上指定 android:textSize 来更改所有这些。自然地,EditText 会比普通的 TextView 更大,因为它只需要更多的空间来显示图形。如果您要为不同的对象使用相同的高度/等,您可能还想查看样式以简化您的 xml 布局:developer.android.com/guide/topics/ui/themes.html
    • 我的第一次尝试是找出视图的高度,但当时(在显示之前)getHeight() 返回 0。我现在将使用不可见的 EditText 并查看主题页面。非常感谢您的帮助,埃迪
    • 我刚刚测试了它 - 不可见的 EditText 并将一个 TextView 的高度设置为 18(这是我的 HTC 上 EditText 的默认值)。在我的设备上看起来很完美,但在其他分辨率的其他设备上可能看起来很糟糕。如果有办法在显示视图之前以编程方式找出高度,则可以独立于设备完成。
    【解决方案2】:

    你可以使用 android:layout_height="match_parent"

    【讨论】:

      【解决方案3】:

      android:editable="false" 已弃用。

      改用android:inputType="none"

      【讨论】:

        猜你喜欢
        • 2019-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-27
        • 2019-02-27
        • 2022-11-04
        相关资源
        最近更新 更多