在Android中安排LinearLayout

时间:2017-01-28 18:30:45

标签: android android-linearlayout

我刚开始使用Android开发,并且正在尝试学习所有内容的复杂性。我尝试创建的视图类似于$________(一个美元符号后面跟一个文本框),但我无法让LinearLayout正常工作(我是' m想象它的工作方式就像XAML的StackPanel?)。

以下是我所拥有的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <LinearLayout android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="75dp">
    <TextView android:text="$"
              android:textSize="65dp"
              android:layout_width="match_parent"
              android:layout_height="match_parent"/>
    <EditText android:layout_width="150dp"
      android:layout_height="match_parent"/>
  </LinearLayout>
</LinearLayout>

但只有美元符号出现。如果我将其切换为:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <LinearLayout android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="75dp">
    <EditText android:layout_width="150dp"
      android:layout_height="match_parent"/>
    <TextView android:text="$"
              android:textSize="65dp"
              android:layout_width="match_parent"
              android:layout_height="match_parent"/>
  </LinearLayout>
</LinearLayout>

然后它会像我期望的那样出现:_________$,但相反的情况似乎并不好用。非常感谢任何帮助!

4 个答案:

答案 0 :(得分:1)

你可以使用

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView android:text="$"
        android:textSize="65sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <EditText
        android:textSize="65sp"
        android:hint="Edit text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:textSize="65sp"
        android:layout_width="wrap_content"
        android:hint="Edit text"
        android:layout_height="wrap_content"/>

        <TextView android:text="$"
            android:textSize="65sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

</LinearLayout>

答案 1 :(得分:0)

您应该将wrap_content用于layout_width的{​​{1}}。

答案 2 :(得分:0)

您需要与美元符号上的父宽度不匹配。

相对布局怎么样?

或者您可以在美元符号和输入字段上设置0dp宽度,然后设置布局权重属性。然后LinearLayout具有权重和属性。

答案 3 :(得分:0)

嘿试着wrap_content TextView

的宽度
    <TextView android:text="$"
                  android:textSize="65dp"
                  android:layout_width="wrap_content"
                  android:layout_height="match_parent"/>
   <EditText android:layout_width="150dp"
      android:layout_height="match_parent"/>