android 什么是ems,为什么编辑字段大小相同(宽度)?

enyaitl3  于 2022-12-25  发布在  Android
关注(0)|答案(1)|浏览(114)

我刚开始Android开发,所以我有两个问题在我的脑海

  • 首先,为什么编辑字段的大小不改变它的width
  • 第二,这两句话的意思是甚么

android:layout_weight="1.0"
android:ems="50"
当我在布局表单中使用android:layout_weight=时,它取值为0.1,为什么?
在球场上,它需要1.0,为什么?ems是什么?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/login_header" 
         android:gravity="center_horizontal"
         android:textSize="30dp" />

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" 
         android:padding="10dp" >

         <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="@string/username"
            android:textSize="18dp"/>

           <EditText
            android:id="@+id/username"
            android:layout_width="5dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:ems="50"
            android:inputType="text"/ >

    </LinearLayout>

      <Button
        android:id="@+id/login"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/login_header"
        android:layout_margin="10dp"/>

</LinearLayout>
2lpgd968

2lpgd9681#

您的EditText宽度没有更改,因为您为EditText给予了layout_weight = 1,这意味着EditText将占用它在其中绘制的Horizontal LinearLayout的全部剩余宽度。
如果您将在TextView和EditText中使用.5 layout_weight。它们都将占用整个宽度的一半。它是水平线性布局,因此权重将影响视图的宽度。因此EditText的宽度是无用的。如果是垂直线性布局,视图的高度将受layout_weight的影响。

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
    android:padding="10dp" >

      <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/username"
        android:textSize="18dp"
        android:layout_weight=".5" />

       <EditText
        android:id="@+id/username"
        android:layout_width="5dp"
        android:layout_height="wrap_content"
        android:layout_weight=".5"
        android:ems="50"
        android:inputType="text" >

     </EditText>
</LinearLayout>

Ems:-是一个印刷术语。有关ems的更多信息,请查看this

相关问题