【问题标题】:Android: Alignment of Elements inside LinearLayoutAndroid:LinearLayout 中元素的对齐方式
【发布时间】:2015-06-26 20:09:02
【问题描述】:

我目前正在为 ListView 中的项目构建自定义布局。首先,这里是当前的 XML 文件:

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

    <LinearLayout
    android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_weight="1">

        <TextView
        android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Medium Text"
            android:id="@+id/textGameName"
            android:singleLine="true" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Small Text"
            android:id="@+id/textRuleName"
            android:singleLine="true" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Small Text"
            android:id="@+id/textLanguageName"
            android:singleLine="true" />
    </LinearLayout>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:id="@+id/imageAction"
        android:src="@mipmap/action_required"
        android:scaleType="center"
        android:layout_gravity="right" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:id="@+id/imageNext"
        android:src="@mipmap/button_list_enter"
        android:scaleType="center"
        android:layout_gravity="right" />

</LinearLayout>

基本上,我想要的是:我希望两个 ImageView 始终尽可能位于右侧,并且内部带有 3 个 TextView 的 LinearLayout 将使用整个剩余空间。在 android studio 编辑器中,我能够得到想要的结果,但是一旦我在 Android 上运行它(我的是 4.4.2),LinearLayout 就没有展开并且按钮在文本旁边。

【问题讨论】:

    标签: android layout alignment


    【解决方案1】:

    您可以使用此布局来达到预期的效果。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:orientation="vertical"
            android:layout_toLeftOf="@+id/imageAction"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Medium Text"
                android:id="@+id/textGameName"
                android:singleLine="true" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Small Text"
                android:id="@+id/textRuleName"
                android:singleLine="true" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Small Text"
                android:id="@+id/textLanguageName"
                android:singleLine="true" />
        </LinearLayout>
        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:id="@+id/imageAction"
            android:src="@mipmap/action_required"
            android:scaleType="center"
            android:layout_toLeftOf="@+id/imageNext" />
        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:id="@+id/imageNext"
            android:src="@mipmap/button_list_enter"
            android:scaleType="center"
            android:layout_alignParentRight="true" />
    </RelativeLayout>
    

    【讨论】:

    • 非常感谢!我不得不稍微调整一下以满足我的需要:图像需要宽度 = wrap_content 和高度 = fill_parent。
    • 我现在已经对此进行了一些详细的研究。我知道 rightOf 存在,但不知何故忘记了它,如果您将左侧移动到右侧,Android Studio 似乎只是使用它。也许开始编写xml而不是使用编辑器会更好。
    【解决方案2】:

    这有帮助吗?如果它没有给我一个项目应该如何的图片

     <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent" android:layout_height="match_parent"
        android:orientation="horizontal"
        android:gravity="right">
    
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_toLeftOf="@+id/linearLayout2"
            android:layout_toStartOf="@+id/linearLayout2">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Medium Text"
                android:id="@+id/textGameName"
                android:singleLine="true" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Small Text"
                android:id="@+id/textRuleName"
                android:singleLine="true" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Small Text"
                android:id="@+id/textLanguageName"
                android:singleLine="true" />
        </LinearLayout>
    
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:id="@+id/linearLayout2">
    
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:id="@+id/imageNext"
                android:src="@drawable/ic_launcher"
                android:scaleType="center"
                android:layout_gravity="right"
                android:layout_weight="1" />
    
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:id="@+id/imageAction"
                android:src="@drawable/ic_launcher"
                android:scaleType="center"
                android:layout_weight="1" />
        </LinearLayout>
    
    </RelativeLayout>
    

    【讨论】:

      【解决方案3】:

      试试这个

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:gravity="right" >
      
          <LinearLayout
              android:id="@+id/linLeft"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_toLeftOf="@+id/linRight"
              android:layout_weight="1"
              android:orientation="vertical" >
      
              <TextView
                  android:id="@+id/textGameName"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:singleLine="true"
                  android:text="Medium Text"
                  android:textAppearance="?android:attr/textAppearanceMedium" />
      
              <TextView
                  android:id="@+id/textRuleName"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:singleLine="true"
                  android:text="Small Text"
                  android:textAppearance="?android:attr/textAppearanceSmall" />
      
              <TextView
                  android:id="@+id/textLanguageName"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:singleLine="true"
                  android:text="Small Text"
                  android:textAppearance="?android:attr/textAppearanceSmall" />
          </LinearLayout>
      
          <LinearLayout
              android:id="@+id/linRight"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentRight="true"
              android:layout_gravity="left"
              android:layout_weight="1"
              android:orientation="horizontal" >
      
              <ImageView
                  android:id="@+id/imageAction"
                  android:layout_width="wrap_content"
                  android:layout_height="fill_parent"
                  android:layout_gravity="right"
                  android:scaleType="center"
                  android:src="@drawable/ic_launcher" />
      
              <ImageView
                  android:id="@+id/imageNext"
                  android:layout_width="wrap_content"
                  android:layout_height="fill_parent"
                  android:layout_gravity="right"
                  android:scaleType="center"
                  android:src="@drawable/ic_launcher" />
          </LinearLayout>
      
      </RelativeLayout>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 2021-09-04
        • 1970-01-01
        • 2019-07-11
        相关资源
        最近更新 更多