相对层中的百分比宽度

相对层中的百分比宽度

我正在为登录进行表单布局。Activity在我的Android应用程序中。下面的图片是我希望它看起来的样子:

我能够通过以下方式实现这个布局XML..问题是,这有点麻烦。我不得不对主机EditText的宽度进行硬编码。具体而言,我必须具体说明:

android:layout_width="172dp"

我真的想给主机和端口EditText一个百分比的宽度。(大约80%的主机,20%的端口。)这个是可能的吗?下面的XML适用于Droid,但它似乎并不适用于所有屏幕。我真的想要一个更有力的解决方案。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/host_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/home"
        android:paddingLeft="15dp"
        android:paddingTop="0dp"
        android:text="host"
        android:textColor="#a5d4e2"
        android:textSize="25sp"
        android:textStyle="normal" />

    <TextView
        android:id="@+id/port_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/home"
        android:layout_toRightOf="@+id/host_input"
        android:paddingTop="0dp"
        android:text="port"
        android:textColor="#a5d4e2"
        android:textSize="25sp"
        android:textStyle="normal" />

    <EditText
        android:id="@+id/host_input"
        android:layout_width="172dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/host_label"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_marginTop="4dp"
        android:background="@android:drawable/editbox_background"
        android:inputType="textEmailAddress" />

    <EditText
        android:id="@+id/port_input"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/host_label"
        android:layout_marginTop="4dp"
        android:layout_toRightOf="@id/host_input"
        android:background="@android:drawable/editbox_background"
        android:inputType="number" />


料青山看我应如是
浏览 436回答 3
3回答

温温酱

你在找android:layout_weight属性。它将允许您使用百分比来定义布局。在下面的示例中,左边按钮使用70%的空格,右边按钮使用30%。<LinearLayout &nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="match_parent"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="wrap_content" &nbsp;&nbsp;&nbsp;&nbsp;android:orientation="horizontal"> &nbsp;&nbsp;&nbsp;&nbsp;<Button &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:text="left"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="0dp"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="wrap_content"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_weight=".70"&nbsp;/>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<Button &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:text="right"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="0dp"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="wrap_content"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_weight=".30"&nbsp;/></LinearLayout>它同样适用于任何类型的视图,您可以用一些EditText替换按钮以满足您的需要。确保设置layout_width到0dp否则你的观点可能就不合适了。请注意,权重之和不一定等于1,我只是觉得这样读起来更容易。你可以把第一个重量设为7,第二个设置为3,这样会得到同样的结果。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android