【问题标题】:android:minEms is ignored in dialog-themed activitiesandroid:minEms 在以对话框为主题的活动中被忽略
【发布时间】:2011-02-07 07:12:42
【问题描述】:

我有一个包含EditText 的相对简单的布局。活动本身使用对话框主题。对话框最终变得很小,编辑文本甚至不足以显示初始字符串。

我知道小对话框是一个常见问题(IIRC Dianne 提到对话框默认使用 wrap_content 作为父窗口),一个典型的解决方法是强制对话框在onCreate 中具有一定的大小。我更喜欢在布局中解决这个问题。

这个想法是给 EditText 一个 30 的 android:minEms 以使其具有合理的大小(在平板电脑上不会太大),但这似乎被忽略了 - EditText(和对话框)仍然很小。

附注 - 对话框的高度也太小 - 底部的按钮是它应该大小的一半。

布局,供参考:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView android:id="@+id/TextView01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/title"
        android:gravity="center"
    />
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
    <ImageButton
        android:id="@+id/file_manager"
        android:src="@drawable/ic_launcher_folder_small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:onClick="pickFile"
      />
      <EditText android:id="@+id/file"
            android:text="@string/default_file"
            android:inputType="text"
            android:minEms="30"
            android:layout_toLeftOf="@+id/file_manager"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
        />
    </RelativeLayout>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/action"
        android:onClick="performAction"
        android:text="@string/action">
    </Button>
</LinearLayout>

【问题讨论】:

    标签: android android-layout android-edittext


    【解决方案1】:

    将您的 RelativeLayout 更改为 android:layout_width="wrap_content"

    【讨论】:

    • 你是个天才!我的错误是假设 fill_parent 总是会比 wrap_content 更宽/更长。
    • 很高兴为您提供帮助。 Android的布局规则在某些地方肯定很奇怪,这一点远非显而易见。我不得不查看 TextView 的源代码,以找出为什么 minEms 可能会被忽略...事实证明,如果父级控制它应该有多大,TextView 将忽略 minEms(就像 fill_parent 的情况一样)。将父级设置为 wrap_content 可以让子级选择自己的大小(这是 minEms 可以进入图片的地方)。呸!
    • 强制延迟结束后,您的赏金即将到来。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2011-09-02
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多