无法右对齐android studio

时间:2017-05-04 13:13:00

标签: android android-layout

enter image description here

我正在尝试按照上面的图像进行设计。我尝试使用网格布局,并尝试使用嵌套的线性布局。在两种方式中,复选框都没有右对齐。它显示在text1

之后

有人可以为此提供帮助吗。

代码是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="2dp"
tools:context="com.example.user.recycleview.MainActivity">

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="3">

    <ImageView
        android:layout_width="80dp"
        android:layout_height="50dp"
        android:layout_gravity="center_vertical"
        android:layout_row="0"
        android:layout_column="0"
        android:layout_rowSpan="2"
        android:src="@drawable/cappuccino"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="0"
        android:layout_column="1"
        android:layout_margin="8dp"
        android:maxLines="3"
        android:text="@string/cappuccino"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="-5dp"
        android:layout_row="1"
        android:layout_column="1"
        android:layout_margin="8dp"
        android:maxLines="1"
        android:text="@string/price"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="end"
        android:layout_row="0"
        android:layout_column="2"
        android:layout_rowSpan="2" />

</GridLayout>


<View
    android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:layout_marginTop="3dp"
    android:layout_marginBottom="3dp"
    android:background="@color/colorPrimary"/>

</LinearLayout>

使用上面的代码,它显示如下:

enter image description here

如果Text1部分太长,则复选框将离开屏幕,如下图所示

enter image description here

5 个答案:

答案 0 :(得分:1)

您可以使用layout_weight右对齐复选框,

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:orientation="horizontal">
<TextView
    android:id="@+id/itemTitle"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1" />
<CheckBox
    android:id="@+id/checkItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" /></LinearLayout>

答案 1 :(得分:1)

您可以使用单个RelativeLayout来实现此目的。

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:padding="2dp"
    tools:context="com.example.user.recycleview.MainActivity">

    <ImageView
        android:id="@+id/image"
        android:layout_width="80dp"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:scaleType="centerCrop"
        android:src="@drawable/somepngfile"/>

    <CheckBox
        android:id="@+id/checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="8dp"/>

    <TextView
        android:id="@+id/text_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/image"
        android:layout_toLeftOf="@id/checkbox"
        android:layout_margin="8dp"
        android:maxLines="2"
        android:ellipsize="end"
        android:text="This is two line text for your large title This is two line text for your large title"/>

    <TextView
        android:id="@+id/text_price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/text_title"
        android:layout_alignLeft="@id/text_title"
        android:layout_alignRight="@id/text_title"
        android:maxLines="1"
        android:text="Price: 150.00"/>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"/>

</RelativeLayout>

<强>输出:

enter image description here

答案 2 :(得分:0)

这个答案可能对你有所帮助。

 <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/black" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="prev"
            android:layout_alignParentLeft="true" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="next"
            android:layout_alignParentRight="true"/>

    </RelativeLayout>

您可以向左或向右设置按钮。将代码表单按钮更改为复选框,即可获得结果。

答案 3 :(得分:0)

您可以为列表项使用相对布局。请尝试下面的代码

<ImageView
    android:id="@+id/imageView"
    android:layout_width="80dp"
    android:layout_height="50dp"
    android:layout_alignParentLeft="true"
    android:layout_gravity="center_vertical"/>

<CheckBox
    android:id="@+id/checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_gravity="right"
    android:gravity="end" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/checkbox"
    android:layout_toRightOf="@id/imageView"
    android:layout_weight=".8"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_margin="8dp"
        android:layout_row="0"
        android:maxLines="3"
        android:text="@string/cappuccino" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_margin="8dp"
        android:layout_marginTop="-5dp"
        android:layout_row="1"
        android:maxLines="1"
        android:text="@string/price" />
</LinearLayout>


<View
    android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:layout_marginBottom="3dp"
    android:layout_marginTop="3dp"
    android:background="@color/colorPrimary" />

答案 4 :(得分:0)

这可能对您有所帮助。

<?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="wrap_content"
    android:orientation="vertical"
    android:padding="2dp">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="120dp"
        android:layout_height="70dp"
        android:scaleType="fitXY"
        android:src="@drawable/ic_image" />

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/imageView"
        android:layout_toStartOf="@+id/checkBox"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:layout_margin="8dp"
            android:layout_row="0"
            android:maxLines="3"
            android:text="Sample Header" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:layout_margin="8dp"
            android:layout_row="1"
            android:maxLines="1"
            android:text="Sample Desc" />
    </LinearLayout>

    <CheckBox
        android:id="@+id/checkBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:gravity="center" />

</RelativeLayout>


<View
    android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:layout_marginBottom="3dp"
    android:layout_marginTop="3dp"
    android:background="@color/colorPrimary" />

</LinearLayout>