Sto creando un layout (file XML) in Android che ha due visualizzazioni figlio (una sul lato destro dello schermo e una a sinistra). Voglio che la vista a destra occupi uno spazio predeterminato (in dp) e che la vista a sinistra occupi tutto lo spazio rimanente fino a un limite, a quel punto smetterà di espandersi e i due layout saranno solo allontanarsi ulteriormente mentre lo schermo si ingrandisce.Layout Android con vista a destra che occupa uno spazio preimpostato e visualizza a sinistra le scale per riempire il resto dello schermo fino a un certo limite
La cosa strana è che sarebbe molto facile se volessi che la vista sul lato destro fosse quella che si espande, e la vista a sinistra sia quella che occupa uno spazio preimpostato. Se imposti ciascuna visualizzazione sulla larghezza desiderata (in un layout lineare orizzontale), Android ridurrà automaticamente quello a sinistra nel caso in cui entrambe le viste non si adattino.
Mi piacerebbe farlo in un file di layout; questo layout è già progettato per display tra sw512dp-land e sw765dp-land.
Il codice seguente funzionerebbe se riuscissi a trovare un modo per rendere Android restringente il layout a sinistra (quando i layout non possono adattarsi alla dimensione specificata). Ma di default il sistema ridurrà prima il layout sulla destra.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<RelativeLayout
android:id="@+id/left"
android:layout_width="150dip"
android:layout_height="fill_parent"
android:background="@color/red" >
</RelativeLayout>
<LinearLayout
android:id="@+id/right"
android:layout_width="100dip"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@color/green" >
</LinearLayout>
Questo codice (da @Lokesh) potrebbe funzionare se non ho bisogno il layout a sinistra per fermare l'espansione ad un certo punto.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/left"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_toLeftOf="@+id/right"
android:background="@color/red" >
</LinearLayout>
<LinearLayout
android:id="@+id/right"
android:layout_width="100dip"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@color/green" >
</LinearLayout>
Sarebbe anche bello sapere se qualcuno pensa che questo non è possibile in modo da poter ricorrere a farlo pragmaticamente o cambiare il mio approccio al layout.
Grazie!
Quali sono esattamente queste * viste * di cui stai parlando? Intendo layout o widget? –
Prova a postare il codice – Chaitanya
Questo dovrebbe essere facile da fare ma dipende da cosa intendi con * occupare tutto lo spazio rimanente fino a un limite *. – Luksprog