Steve Kamau
Steve Kamau

Reputation: 2785

How to adjust horizontal views in layout

I am trying to adjust the sizes of my textviews based on the size of the device. However it's partial adjustments. Let me show you what i mean: enter image description here

The following picture depicts the desired effect. TextView B length determines the length of textview A, that is to say that part C is completely independent and is at the end with fixed size. If the textview A gets it's size reduced,then the end is elipsized. I have tried shifting from using LinearLayout with weights as well as RelativeLayout but haven't achieved the desired effect. Thoughts?

What i have tried:

<?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>

Upvotes: 0

Views: 53

Answers (2)

Kshitij Jain
Kshitij Jain

Reputation: 569

<?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>

As B Is Dependent On A,This Layout Will Work Fine For You. :)

Upvotes: 0

firegloves
firegloves

Reputation: 5709

Something like this?

<?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>

Upvotes: 1

Related Questions