【问题标题】:design edit text in exact rectangular shape android linear layout without hard coding values在没有硬编码值的情况下以精确的矩形 android 线性布局设计编辑文本
【发布时间】:2017-12-12 10:20:09
【问题描述】:

我想设计

布局,即编辑文本的宽度应该是这样的。对于以下代码

<LinearLayout android:layout_below="@+id/txt_buy_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="@drawable/side_nav_bar"
android:layout_marginTop="@dimen/activity_vertical_space"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <android.support.v7.widget.AppCompatEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edittext_backgound"
        android:hint="Rate"
        android:textColor="@color/colorWhite"
        android:textColorHint="@color/colorWhite"
        android:textSize="@dimen/BTC_value_size"
        android:layout_weight="1"
        android:drawableRight="@drawable/ic_inr_24"
        android:gravity="center"/>
    <android.support.v7.widget.AppCompatEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edittext_backgound"
        android:hint="Amount"
        android:layout_marginTop="@dimen/view_internal_space"
        android:textColor="@color/colorWhite"
        android:textColorHint="@color/colorWhite"
        android:textSize="@dimen/BTC_value_size"
        android:layout_weight="1"
        android:drawableRight="@drawable/ic_inr_24"
        android:gravity="center"/>
    <android.support.v7.widget.AppCompatEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edittext_backgound"
        android:hint="Quantity"
        android:layout_marginTop="@dimen/view_internal_space"
        android:textColor="@color/colorWhite"
        android:textColorHint="@color/colorWhite"
        android:textSize="@dimen/BTC_value_size"
        android:layout_weight="1"
        android:drawableRight="@drawable/ic_bitcoin_24"
        android:gravity="center"/>
    <android.support.v7.widget.AppCompatButton
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff61fffd"
        android:hint="Rate"
        android:layout_marginTop="@dimen/view_internal_space"
        android:textColor="@color/colorWhite"
        android:textColorHint="@color/colorWhite"
        android:textSize="@dimen/BTC_value_size"
        android:layout_weight="1"
        android:drawableRight="@drawable/ic_inr_24"
        android:gravity="center"/>
</LinearLayout>

它提供输出喜欢

当我将 match_parent 同时赋予内部线性布局的宽度和高度时,它看起来并不好,当我尝试为内部线性布局提供左右填充时,设计变得糟糕。我想设计这个布局而不给硬编码的宽度。请帮助

【问题讨论】:

  • 检查我的更新答案

标签: android android-layout android-linearlayout


【解决方案1】:

试试这个:

 <LinearLayout android:layout_below="@+id/txt_buy_info"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="horizontal"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="0.4"
        android:layout_height="wrap_content"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.v7.widget.AppCompatEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Rate"
            android:layout_marginTop="20dp"
            android:textColor="@color/colorBlack"
            android:textColorHint="@color/colorBlack"
            android:gravity="center"/>

        <android.support.v7.widget.AppCompatEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Amount"
            android:layout_marginTop="20dp"
            android:textColor="@color/colorBlack"
            android:textColorHint="@color/colorBlack"
            android:gravity="center"/>

        <android.support.v7.widget.AppCompatEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Quantity"
            android:layout_marginTop="20dp"
            android:textColor="@color/colorBlack"
            android:textColorHint="@color/colorBlack"
            android:gravity="center"/>

        <android.support.v7.widget.AppCompatButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#ff61fffd"
            android:hint="Rate"
            android:layout_marginTop="20dp"
            android:textColor="@color/colorBlack"
            android:textColorHint="@color/colorBlack"
            android:gravity="center"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="0.4"
        android:layout_height="wrap_content"/>

    </LinearLayout>

【讨论】:

  • 您可以删除每个 AppCompatEditText 和 AppCompatButton 的权重。如果你不想填满整个屏幕。
  • 是的,正是我想要的。感谢您的宝贵回复
【解决方案2】:

删除不必要的权重 android:layout_weight="1" 并添加填充 android:padding="10dp" 到 Edittexts 如下所示

<LinearLayout android:layout_below="@+id/txt_buy_info"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:gravity="center"
          android:background="@drawable/side_nav_bar"
          android:layout_marginTop="@dimen/activity_vertical_space"
          xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <android.support.v7.widget.AppCompatEditText
        android:padding="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edittext_backgound"
        android:hint="Rate"
        android:textColor="@color/colorWhite"
        android:textColorHint="@color/colorWhite"
        android:textSize="@dimen/BTC_value_size"
        android:drawableRight="@drawable/ic_inr_24"
        android:gravity="center"/>
    <android.support.v7.widget.AppCompatEditText
        android:padding="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edittext_backgound"
        android:hint="Amount"
        android:layout_marginTop="@dimen/view_internal_space"
        android:textColor="@color/colorWhite"
        android:textColorHint="@color/colorWhite"
        android:textSize="@dimen/BTC_value_size"
        android:drawableRight="@drawable/ic_inr_24"
        android:gravity="center"/>
    <android.support.v7.widget.AppCompatEditText
        android:padding="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edittext_backgound"
        android:hint="Quantity"
        android:layout_marginTop="@dimen/view_internal_space"
        android:textColor="@color/colorWhite"
        android:textColorHint="@color/colorWhite"
        android:textSize="@dimen/BTC_value_size"
        android:drawableRight="@drawable/ic_bitcoin_24"
        android:gravity="center"/>
    <android.support.v7.widget.AppCompatButton
        android:padding="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff61fffd"
        android:hint="Rate"
        android:layout_marginTop="@dimen/view_internal_space"
        android:textColor="@color/colorWhite"
        android:textColorHint="@color/colorWhite"
        android:textSize="@dimen/BTC_value_size"
        android:drawableRight="@drawable/ic_inr_24"
        android:gravity="center"/>
</LinearLayout>

【讨论】:

    【解决方案3】:
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
        android:layout_width="wrap_content"  // Change layout_width= "match_parent"  // it will work fine
        android:layout_height="match_parent"
        android:orientation="vertical">
        <android.support.v7.widget.AppCompatEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext_backgound"
            android:hint="Rate"
            android:textColor="@color/colorWhite"
            android:textColorHint="@color/colorWhite"
            android:textSize="@dimen/BTC_value_size"
            android:layout_weight="1"
            android:drawableRight="@drawable/ic_inr_24"
            android:gravity="center"/>
        <android.support.v7.widget.AppCompatEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext_backgound"
            android:hint="Amount"
            android:layout_marginTop="@dimen/view_internal_space"
            android:textColor="@color/colorWhite"
            android:textColorHint="@color/colorWhite"
            android:textSize="@dimen/BTC_value_size"
            android:layout_weight="1"
            android:drawableRight="@drawable/ic_inr_24"
            android:gravity="center"/>
        <android.support.v7.widget.AppCompatEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext_backgound"
            android:hint="Quantity"
            android:layout_marginTop="@dimen/view_internal_space"
            android:textColor="@color/colorWhite"
            android:textColorHint="@color/colorWhite"
            android:textSize="@dimen/BTC_value_size"
            android:layout_weight="1"
            android:drawableRight="@drawable/ic_bitcoin_24"
            android:gravity="center"/>
        <android.support.v7.widget.AppCompatButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#ff61fffd"
            android:hint="Rate"
            android:layout_marginTop="@dimen/view_internal_space"
            android:textColor="@color/colorWhite"
            android:textColorHint="@color/colorWhite"
            android:textSize="@dimen/BTC_value_size"
            android:layout_weight="1"
            android:drawableRight="@drawable/ic_inr_24"
            android:gravity="center"/>
    </LinearLayout>
    

    //请检查我提到的第4行的评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多