Combina layout_weight e maxWidth per le visualizzazioni

Sto cercando di rendere i miei layout più paesaggistici e un model comune è quello di aggiungere un LinearLayout con alcuni pulsanti (ad esempio, OK | Annulla) e impostare un valore solo per il layout_weight modo che lo spazio sia distribuito uniformsmente. Il problema è che quando si utilizza un telefono o (in particolare) una tavoletta in modalità orizzontale, si finisce con pulsanti umoristici che sembrano ridicoli. Ho provato a impostare maxWidth sui pulsanti e sul layout lineare, ma senza alcun risultato. Qual è il modo più semplice per raggiungere questo objective? Vale a dire, impostare una dimensione massima orizzontale per la visualizzazione in modo che non cresca a tutta la width. Ho provato un mucchio di cose diverse, ma nessuno ha funzionato.

Ecco un layout di esempio:

  • Come aggiungere un'image in un palloncino di mapping?
  • "Imansible inizializzare la discussione del monitor: Imansible stabilire la connessione di loopback" dopo aver eseguito Eclipse
  • Come prendere uno screenshot?
  • Navigatore Cassetto semitrasparente sulla barra di stato non funzionante
  • Android - Imansible istanziare l'attività - L'exception di class non trovata dopo l'aggiornamento a ADT 22
  • Android - notifyDataSetChange dall'interno della class Custom ArrayAdapter
  •   <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="6dp" android:paddingBottom="6dp"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:enabled="false" android:textStyle="bold" android:text="@string/button1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button2" /> </LinearLayout> 

    Nota: so che posso creare un nuovo file di layout per il paesaggio e fare magia lì. Voglio mantenere i file di layout specializzati al minimo e spero che questo non li richieda.

  • Tirare a Zoom Animazione
  • Errore durante la creazione di una propria libreria di jar per il progetto Android
  • ViewPager + PagerAdapter mostra pagine vuote dopo i primi due elementi
  • Come aggiungere la riproduzione video e la risorsa all'applicazione android
  • Consulenza sulla ridenominazione di un progetto Android in studio Android (basato su Gradle)
  • Come eseguire il plugin cordova nel servizio di background di Android?
  • 3 Solutions collect form web for “Combina layout_weight e maxWidth per le visualizzazioni”

    Non ho Eclipse qui per testarlo, ma vorrei usare un RelativeLayout invece, qualcosa di simile:

     <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <View android:id="@+id/centerView" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/centerView" android:enabled="false" android:textStyle="bold" android:text="@string/button1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/centerView" android:text="@string/button2" /> </RelativeLayout> 

    Come ho detto, non posso provarlo adesso, ma puoi lavorare in giro per questa idea.

    Su una nota laterale, a less che il layout non sia molto semplice, di solito creo layout separati per il paesaggio. È un po 'più lavoro, ma è ansible ottimizzare meglio le opinioni in quel modo. In particolare, se si prevede di supportre schermi più grandi.

    Dopo aver messo in giro un po 'con i relativi layout, ho imbattuto in questa risposta , che è quello che ho finito per usare.

     <RelativeLayout android:id="@+id/rlMain" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="12dp" android:layout_marginRight="12dp"> <View android:id="@+id/vCenter" android:layout_width="0dp" android:layout_height="0dp" android:layout_centerHorizontal="true" android:layout_marginRight="5dp" android:layout_marginLeft="5dp"/> <Button android:id="@+id/btnOne" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_toLeftOf="@id/vCenter" <!--Change this for different widths--> android:minWidth="200dp"/> <Button android:id="@+id/btnTwo" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_toRightOf="@id/vCenter" <!--Change this for different widths--> android:minWidth="200dp"/> </RelativeLayout> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.