La tastiera morbida Android non ridimensiona la mia opinione
-
09-12-2019 - |
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?
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.