Ho un TextView allineato a sinistra e un pulsante allineato a destra affiancato. Voglio che il pulsante occupi tutto lo spazio necessario a destra (a seconda del testo che vi si trova dentro) e il testo a sinistra per riempirlo il più possibile e ellissi su qualsiasi overflow.TextView Android e pulsante side-by-side, ellissize a sinistra TextView
|Long title that may or may not ellipsi... <Button with text>|
ho letto e ho cercato un sacco di altri posti che sembrano avere problemi simili, nessuno dei quali hanno lavorato per me. Ho provato a utilizzare sia un LinearLayout con pesi che un RelativeLayout con layout_toLeftOf assegnato, nessuno dei quali risulta in ciò di cui ho bisogno.
Questo è il mio codice LinearLayout (con parti inutili prese fuori), dove io ti do il TextView sinistra un layout_weight di 1 e il pulsante di un layout_weight 0. Questo dovrebbe dare il pulsante destro del lato tutto lo spazio di cui ha bisogno e dare il TextView il resto, ma invece il titolo di sinistra smette di mostrare e il pulsante di destra viene applicato a lato e tagliato. Ho provato a sostituire le larghezze del testo e del pulsante su 0dip come ho visto suggerito, che non cambia nulla.
<LinearLayout
android:layout_height="@dimen/title_bar_height"
android:layout_width="fill_parent"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:layout_gravity="left|center_vertical"
android:gravity="left|center_vertical"
android:textSize="22sp"
android:lines="1"/>
<include layout="@layout/action_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"/>
</LinearLayout>
Sostituzione della layout_weight del TextView con 0 permette in realtà il pulsante destra per adattarsi correttamente sullo schermo pieno, ma il testo a sinistra ancora non si presenta. Se ho entrambi i layout_weights impostati su 0 per il TextView e il pulsante, quindi cambio la larghezza del TextView da 0dip a wrap_content, tutto appare ma il pulsante viene squished per riempire lo spazio rimanente (e il testo all'interno viene troncato).
Ecco il mio tentativo con un RelativeLayout:
<RelativeLayout
android:layout_height="@dimen/title_bar_height"
android:layout_width="wrap_content">
<include layout="@layout/action_buttons"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@layout/action_buttons"
android:gravity="center_vertical"
android:scaleType="center"
android:textSize="22sp"
android:ellipsize="end"
android:lines="1"/>
</RelativeLayout>
Tutto allinea bene e si presenta, salvo che il TextView sinistra (quando è troppo lungo) si sovrappone e appare in cima al tasto piuttosto che troncare e ellipsizing . Non dovrebbe androide: layout_toLeftOf "@ layout/action_buttons" specifica che TextView deve rimanere sul bordo sinistro del pulsante?
Ho provato apparentemente tutto quello che posso trovare su questo sito relativo a questo problema, e non riesco ancora a ottenere una soluzione. Qualsiasi aiuto sarebbe molto apprezzato!
Con il ' RelativeLayout' tentativo, hai provato 'android: layout_width =" wrap_content "' per impedire a 'TextView' di sovrapporre il' Button' quando il testo è lungo? – Squonk
Sì, entrambi Android: layout_width = "wrap_content" e android: layout_width = "fill_parent" per TextView danno lo stesso problema di sovrapposizione. – socoho
Ho provato per circa 30 minuti nell'editor di layout di Eclipse e non riesco a trovare una risposta, ma di nuovo i layout non sono il mio punto di forza. Se non l'hai risolto in 48 ore, aggiungi un commento qui che inizia con @MisterSquonk e dovrebbe avvisarmi - Metterò una taglia sulla domanda per vedere se attira qualche guru del layout. Ci vogliono 48 ore prima che una domanda sia idonea per una taglia però. – Squonk