Domanda

So che ci sono mille domande su questo, ma mi sono strisciate attraverso di loro e nessuna delle loro soluzioni lavora per me.

La mia attività ha un'interfaccia a schede con questo tipo di layout:

<RelativeLayout>
    <LinearLayout tabBar>
        <Button tab1 />
        <Button tab2 />
        <Button tab3 />
        <Button tab4 />
    </LinearLayout>
    <ViewFlipper>
        <fragment Tab1 />
        <fragment Tab2 />
        <fragment Tab3 />
        <fragment Tab4 />
    </ViewFlipper>
</RelativeLayout>
.

Quando il pulsante Tab2 viene tappato nel linearloyout, quindi modifico il flipper per visualizzare il bambino 2 che è controllato da Tab2frago.

Layout di Tab2fragment è simile a questo:

<FrameLayout>
    <ListView/>
</FrameLayout>
.

Quando viene selezionato un elemento nella lista ListView, creo un nuovo frammento, lo chiamiamo Sub2fragment e lo aggiungo come il figlio al framelayout.

Sub2fragment ha un layout come questo:

<LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent">
    <LinearLayout> <TextView /> <EditText /> </LinearLayout>
    <LinearLayout> <TextView /> <EditText /> </LinearLayout>
    <LinearLayout> <TextView /> <EditText /> </LinearLayout>
    <LinearLayout> <TextView /> <EditText /> </LinearLayout>
    <Button />
</LinearLayout>
.

Quando la tastiera morbida è mostrata che copre alcuni dei miei editexts e il mio pulsante. Ho provato ad avvolgere quel linearloyout con uno scrollview pure:

<ScrollView android:layout_height="fill_parent" android:layout_width="fill_parent">
    <LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent">
        <LinearLayout> <TextView /> <EditText /> </LinearLayout>
        <LinearLayout> <TextView /> <EditText /> </LinearLayout>
        <LinearLayout> <TextView /> <EditText /> </LinearLayout>
        <LinearLayout> <TextView /> <EditText /> </LinearLayout>
        <Button />
    </LinearLayout>
</ScrollView>
.

Ho anche provato il mio manifest con e senza android:windowSoftInputMode="adjustResize" sulla mia attività, ma niente provi a ottenere la vista per ridimensionare automaticamente in modo che lo scrollview mi permetterà di scorrere l'intero contenuto quando la tastiera soft è visibile. Ho anche provato ad avvolgere l'intera attività in uno scrollView, ma che ha incasinato il mio intero layout perché si basa sul riempimento dell'intera dimensione dello schermo e lo scrollView disconnette il layout del bambino da ciò che la dimensione effettiva dello schermo è ... < / P >.

Qualsiasi aiuto?

È stato utile?

Soluzione

Ho trovato il problema ... Volevo sbarazzarmi della barra di stato superiore, quindi ho aggiunto questo alla mia attività:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
.

che ha calpestato il ridimensionamento della tastiera morbida della vista.Commenta e tutto funziona come previsto.

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