【问题标题】:Move the checkbox in between the two textView将复选框移动到两个 textView 之间
【发布时间】:2017-05-24 01:34:35
【问题描述】:

如何在 Description 和 Price 之间移动复选框?

我想要的输出应该如下图所示

但我只能这样做

我的xml代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dip">

    <LinearLayout
        android:id="@+id/thumbnail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3dip"
        android:orientation="vertical"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">

        <ImageView
            android:id="@+id/photo"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:scaleType="centerCrop"
            android:layout_gravity="center"/>
    </LinearLayout>

    <CheckBox
        android:id="@+id/checkBox"
        android:paddingTop="15dp"
        android:paddingRight="25dp"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:button="@drawable/xml_button"
        android:background="@drawable/xml_background"
        android:layout_alignBottom="@+id/ListAmount"
        android:layout_alignLeft="@+id/ListDate"
        android:layout_alignStart="@+id/ListDate" />

    <TextView
        android:id="@+id/ListDate"
        android:text="20 Dec"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:textColor="@color/input_register"
        android:textStyle="bold"
        android:layout_marginRight="40dp"
        android:layout_marginEnd="40dp"
        android:layout_alignBottom="@+id/thumbnail"
        android:layout_alignRight="@+id/ListAmount"
        android:layout_alignEnd="@+id/ListAmount" />

    <TextView
        android:id="@+id/ListAmount"
        android:text="RM 5.00"
        android:textSize="20sp"
        android:textColor="@color/violetred"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/ListDate"
        android:layout_toRightOf="@+id/thumbnail"
        android:layout_toEndOf="@+id/thumbnail" />

    <TextView
        android:id="@+id/ListDescription"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:textSize="20sp"
        android:text="Description"
        android:ellipsize="end"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:layout_toEndOf="@+id/thumbnail" />

</RelativeLayout>

如何将checkbox 移动到两个textView 之间, 描述和金额?非常感谢。

【问题讨论】:

    标签: android xml listview checkbox


    【解决方案1】:

    这个可以用

        <LinearLayout
            android:id="@+id/thumbnail"
            android:layout_width="wrap_content"
            android:layout_height="80dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:orientation="vertical"
            android:padding="3dip" >
    
        <ImageView
            android:id="@+id/photo"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_gravity="center"
            android:scaleType="centerCrop" />
    </LinearLayout>
    
    <CheckBox
        android:id="@+id/checkBox"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_below="@+id/ListDescription"
        android:layout_centerInParent="true"
        android:background="@drawable/xml_background"
        android:button="@drawable/xml_button"
        android:paddingRight="25dp" />
    
    <TextView
        android:id="@+id/ListAmount"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/ListDate"
        android:layout_below="@+id/checkBox"
        android:layout_marginTop="30dp"
        android:layout_toEndOf="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:text="RM 5.00"
        android:textColor="@color/violetred"
        android:textSize="20sp"
        android:visibility="gone" />
    
    <TextView
        android:id="@+id/ListDescription"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toEndOf="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:ellipsize="end"
        android:singleLine="true"
        android:text="Description"
        android:textSize="20sp" />
    
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/checkBox"
        android:layout_below="@+id/checkBox"
        android:padding="10dp"
        android:text="TextView" />
    
    <TextView
        android:id="@+id/ListDate"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/ListAmount"
        android:layout_alignRight="@+id/ListDescription"
        android:layout_below="@+id/textView1"
        android:layout_marginEnd="40dp"
        android:layout_marginRight="18dp"
        android:text="20 Dec"
        android:textColor="@color/input_register"
        android:textStyle="bold" />
    
    </RelativeLayout>
    

    【讨论】:

      【解决方案2】:

      你应该用RelativeLayout包围DescriptionAmountCheckBox

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical" android:layout_width="match_parent"
          android:layout_height="match_parent">
      
          <ImageView
              android:id="@+id/image"
              android:layout_width="100dp"
              android:layout_height="100dp"/>
      
          <RelativeLayout
              android:layout_toRightOf="@id/image"
              android:layout_width="match_parent"
              android:layout_height="wrap_content">
      
          <TextView
              android:id="@+id/description"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
      
              android:paddingLeft="15dp"
              android:paddingTop="15dp"
      
              android:textSize="20sp"
              android:text="Description"/>
      
          <TextView
              android:id="@+id/amount"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
      
              android:layout_below="@id/description"
              android:paddingLeft="15dp"
              android:paddingTop="15dp"
      
              android:textSize="20sp"
              android:text="Amount"/>
      
              <CheckBox
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
      
                  android:layout_alignParentRight="true"
                  android:layout_centerVertical="true"/>
      
          </RelativeLayout>
      
      </RelativeLayout>
      

      通过使用RelativeLayout,您可以访问to_RightOfto_LeftOf 和许多其他对象,但在这种情况下最重要的是android:layout_centerVertical="true",它将在父元素中居中。在这种情况下,这是一个非常有用的帮助。

      【讨论】:

      • 谢谢,但是我的date呢?
      • 由于根容器是RelativeLayout,对于您的日期元素,您可以使用属性layout_below="someId" 和layout_alignParentRight="true"
      【解决方案3】:

      查看适用于 Android 的新 ConstraintLayout。

      你的问题要容易得多。

      ConstraintLayout

      你也可以在youtube找到简短的介绍

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多