Come avere una larghezza scalabile in base alla larghezza dello schermo per una visualizzazione nel layout relativo Android

StackOverflow https://stackoverflow.com//questions/25026434

Domanda

Nel layout di un'attività della mia app Android, devo avere una riga con un testo allineato sul lato destro come di seguito:

enter image description here

E questo è il mio XML finora:

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <View
                android:id="@+id/line"
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginLeft="15dp"
                android:layout_marginRight="15dp"
                android:layout_centerVertical="true"
                android:background="@android:color/darker_gray"/>


            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=" Text "
                android:layout_alignRight="@id/line"/>


        </RelativeLayout>

Fondamentalmente il problema è che la larghezza della linea viene modificata in base alla larghezza dello schermo e alla larghezza del testo.Dovrebbe essere la larghezza dello schermo meno la larghezza del testo.

Nel mio file XML, la larghezza della linea è uguale alla larghezza dello schermo e il testo si sovrappone alla linea allineata a destra.Il che non è quello che volevo.Un'idea è quella di rendere lo sfondo del mio testo equivalente allo sfondo dell'attività.Tuttavia, non sono sicuro che questa sia l'idea migliore.

Mi chiedo se esiste un altro modo per risolvere tali problemi nella progettazione Android.

È stato utile?

Soluzione

puoi creare un file layout_weight e avvolgi la tua vista e textView all'interno di un linearlayout per abilitare l'uso dell'attributo peso

campione:

<?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="horizontal" >

    <View
        android:layout_width="0dp"
        android:layout_weight="3"
        android:layout_height="3dp"
        android:layout_gravity="center_vertical"
        android:background="@android:color/darker_gray" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Text " />

</LinearLayout>

Altri suggerimenti

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text=" Text " />

<View
    android:id="@+id/line"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@+id/textView1"
    android:background="@android:color/darker_gray" />
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top