如何在布局中调整水平视图

时间:2017-01-04 14:13:11

标签: android android-layout

我正在尝试根据设备的大小调整textviews的尺寸。然而,这是部分调整。让我告诉你我的意思: enter image description here

下图描绘了所需的效果。 TextView B长度确定textview A的长度,也就是说C部分是完全独立的,并且最终具有固定大小。如果textview A的大小减小,则结尾为elipsized。我尝试使用LinearLayout转换权重以及RelativeLayout,但未达到预期的效果。想法?

我尝试了什么:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:foobar="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:paddingBottom="3dp"
    android:paddingTop="3dp">

    <com.android.volley.toolbox.NetworkImageView
        android:id="@+id/thumbnail"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#ddd"
        android:scaleType="centerCrop"
        android:visibility="invisible" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <com.ctrlplusz.anytextview.AnyTextView
            android:id="@+id/tv2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_toLeftOf="@+id/input"
            android:ellipsize="end"
            android:maxLength="20"
            android:maxLines="1"
            android:paddingLeft="7dp"
            android:singleLine="true"
            android:text="cshbcadhbhjvbbvjfbvcsdhabcsdjbvjsdbvjsfdbvsfnvk"
            android:textColor="@color/black"
            android:textSize="20dp"
            foobar:typeface="Roboto-Light.ttf" />
        <!--android:text="cshbcadhbhjvbbvjfbvcsdhabcsdjbvjsdbvjsfdbvsfnvk"-->
        <RelativeLayout
            android:id="@+id/input"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical">

            <com.ctrlplusz.anytextview.AnyTextView
                android:id="@+id/price"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_toLeftOf="@+id/toggle"
                android:gravity="end"
                android:paddingRight="4dp"
                android:text="3900"
                android:textColor="@color/gray"
                android:textSize="20dp"
                foobar:typeface="Roboto-Light.ttf" />

            <RelativeLayout
                android:id="@+id/toggle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginRight="5dp"
                android:gravity="end"
                android:orientation="horizontal">

                <RelativeLayout
                    android:id="@+id/minus"
                    android:layout_width="38dp"
                    android:layout_height="35dp"
                    android:layout_centerVertical="true"
                    android:background="@drawable/minus_product_icon">

                    <ImageView
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:layout_centerHorizontal="true"
                        android:layout_centerVertical="true"
                        android:src="@drawable/ic_minus" />
                </RelativeLayout>


                <RelativeLayout
                    android:id="@+id/add"
                    android:layout_width="38dp"
                    android:layout_height="35dp"
                    android:layout_centerVertical="true"
                    android:layout_toRightOf="@+id/num"
                    android:background="@drawable/add_product_icon">

                    <ImageView
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:layout_centerHorizontal="true"
                        android:layout_centerVertical="true"
                        android:src="@drawable/ic_add_icon" />
                </RelativeLayout>

                <EditText
                    android:id="@+id/num"
                    android:layout_width="40dp"
                    android:layout_height="35dp"
                    android:layout_centerVertical="true"
                    android:layout_toRightOf="@+id/minus"
                    android:background="@drawable/product_custom_edit_text"
                    android:digits="1234567890"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:gravity="center"
                    android:imeOptions="actionDone"
                    android:inputType="numberDecimal"
                    android:padding="2dp"
                    android:singleLine="true"
                    android:text="0"
                    android:textColor="#000"
                    android:textCursorDrawable="@drawable/mycursor" />

            </RelativeLayout>

        </RelativeLayout>
    </RelativeLayout>


    <com.ctrlplusz.anytextview.AnyTextView
        android:id="@+id/p"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_centerVertical="true"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="11dp"
        android:textColor="@color/gray"
        android:textSize="20dp"
        foobar:typeface="Roboto-Light.ttf" />

</RelativeLayout>

2 个答案:

答案 0 :(得分: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="100dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/a"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/blue"
        android:textColor="@android:color/white"
        android:text="hi dear"
        android:layout_toLeftOf="@+id/b"/>

    <TextView
        android:id="@+id/b"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="@color/black"
        android:textColor="@android:color/white"
        android:text="hello world"
        android:layout_toLeftOf="@+id/c"/>

    <TextView
        android:id="@+id/c"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:textColor="@android:color/white"
        android:text="hi darling"
        android:background="@color/green"/>

</RelativeLayout>

答案 1 :(得分:0)

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

<TextView
    android:id="@+id/a"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:background="@color/blue"
    android:textColor="@android:color/white"
    android:text="hi dear"
    />

<TextView
    android:id="@+id/b"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:background="@color/black"
    android:textColor="@android:color/white"
    android:text="hello world"
    android:layout_toRightOf="@+id/a"
    android:layout_toLeftOf="@+id/c"/>

<TextView
    android:id="@+id/c"
    android:layout_width="100dp"
    android:layout_height="match_parent"
    android:layout_alignParentRight="true"
    android:textColor="@android:color/white"
    android:text="hi darling"
    android:background="@color/green"/>

</RelativeLayout>

由于B依赖于A,因此此布局适用于您。 :)