Ho un ViewPager e un ActionBar con schede. Una di queste schede ha un controllo ListView e quando tocco una delle opzioni in quel ListView, aggiungo un frammento figlio che è la vista di dettaglio per quella riga.View in ScrollView non corrisponde a parent come configurato
Questa vista di dettaglio è una ScrollView con un LinearLayout al suo interno. ScrollView è match_parent/match_parent
e LinearLayout al suo interno è width=match_parent
e height=wrap_content
. Su un emulatore di dimensioni del telefono, la vista di dettaglio riempie lo schermo come desiderato, ma su un tablet, la vista di dettaglio copre solo parte della larghezza dello schermo ... anche se la larghezza del ScrollView e la larghezza del LinearLayout sono entrambi match_parent.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView" style="@style/RootScrollView">
<LinearLayout android:id="@+id/scrollContentView" style="@style/ScrollViewContent">
...
</LinearLayout>
</ScrollView>
Qui è lo stile per la vista di scorrimento:
<style name="RootScrollView">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
</style>
Qui è lo stile per il LinearLayout contenuti:
<style name="ScrollViewContent">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingLeft">15dp</item>
<item name="android:paddingRight">15dp</item>
<item name="android:orientation">vertical</item>
<item name="android:background">@drawable/image_legal_paper_tile</item>
</style>
La vista dei contenuti è uno sfondo ripetuto image_legal_paper_tile
che è questo :
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/legal_paper_tile"
android:gravity="fill_horizontal"
android:tileMode="repeat" />
Quindi, l'immagine dovrebbe allungarsi orizzontalmente e ripetere che crea un blocco di carta legale giallo sullo sfondo.
Questo è ciò che la lista e la vista di dettaglio assomigliano l'emulatore telefono:
Questo è ciò che la lista e dettaglio vista sguardo come su un vero e proprio tablet. Il frammento di riquadro legale giallo DOVREBBE riempire l'intera larghezza dello schermo, ma non lo è.
EDIT:
Qui è l'immagine di sfondo carta legale:
E '320px di larghezza. L'emulatore del telefono è largo 480 px e l'immagine si allunga correttamente per riempire la larghezza dello schermo. Ripete quindi verticalmente come previsto. Tuttavia, non si estende per riempire la larghezza dello schermo sul tablet.
La larghezza mostrata sul tablet NON è la dimensione nativa dell'immagine, perché modifica le dimensioni in base al contenuto. Quando il frammento viene caricato per la prima volta, è una larghezza. Quindi compilo i campi ed eseguo il calcolo che aggiunge del testo nella parte inferiore della vista del contenuto. Quel testo è più ampio del contenuto esistente e quindi quando il testo viene impostato, la larghezza del frammento aumenta per supportare il contenuto più ampio.
Quindi, in breve, no, la larghezza del tablet non è la dimensione nativa dell'immagine. L'immagine si sta allungando, ma non si estende fino in fondo.
Si sta utilizzando un solo layout per tutte le dimensioni del layout? Quanto è grande la tua immagine di sfondo? La dimensione dell'immagine di sfondo è visibile sul tablet? Quindi può essere un problema di ripetizione delle tessere (per questo forse controllare questo [collegamento] (http://stackoverflow.com/questions/4077487/background-image-not-repeating-in-android-layout)). – abbath
La larghezza mostrata sul tablet NON è la dimensione nativa dell'immagine, perché modifica le dimensioni in base al contenuto. Quando il frammento viene caricato per la prima volta, è una larghezza. Quindi compilo i campi ed eseguo il calcolo che aggiunge del testo nella parte inferiore della vista del contenuto. Quel testo è più ampio del contenuto esistente e quindi quando il testo viene impostato, la larghezza del frammento aumenta per supportare il contenuto più ampio. –
se hai usato il margine di layout nel layout lineare del figlio di scroll, dovresti cambiarlo in padding per funzionare true. –