Android 2.2 i.e API Livello 8 ha tabStripEnabled = "true" per TabWidget come ottenere lo stesso nelle versioni precedenti di Android?tabStripEnabled per TabWidget nelle API precedenti
risposta
private void SetupTabs(TabHost tabHost) {
LinearLayout ll = (LinearLayout) tabHost.getChildAt(0);
TabWidget tw = (TabWidget) ll.getChildAt(0);
Field mBottomLeftStrip;
Field mBottomRightStrip;
try {
mBottomLeftStrip = tw.getClass().getDeclaredField("mBottomLeftStrip");
mBottomRightStrip = tw.getClass().getDeclaredField("mBottomRightStrip");
if (!mBottomLeftStrip.isAccessible()) {
mBottomLeftStrip.setAccessible(true);
}
if (!mBottomRightStrip.isAccessible()) {
mBottomRightStrip.setAccessible(true);
}
mBottomLeftStrip.set(tw, getResources().getDrawable(R.drawable.blank));
mBottomRightStrip.set(tw, getResources().getDrawable(R.drawable.blank));// blank is the name of the image in drawable folder
}
catch (java.lang.NoSuchFieldException e) {
// possibly 2.2
try {
Method stripEnabled = tw.getClass().getDeclaredMethod("setStripEnabled", boolean.class);
stripEnabled.invoke(tw, false);
}
catch (Exception e1) {
e1.printStackTrace();
}
}
catch (Exception e) {}
}
Grazie mille!!!! – Eby
Questo non ha funzionato per me. Ho provato entrambi su un emulatore 2.1 e 2.2. C'è qualcos'altro che dovrei considerare quando uso questo hack? Ha eseguito correttamente il codice in base all'SDK corrente ma il bordo inferiore per TabWidget è rimasto. – dannyroa
Ciò ha funzionato perfettamente, alcune cose da notare, creare un'immagine trasparente e nominarla vuota. Ho apportato una leggera modifica commentando: LinearLayout ll = (LinearLayout) tabHost.getChildAt (0); TabWidget tw = (TabWidget) ll.getChildAt (0); e in sostituzione con TabWidget tw = tabHost.getTabWidget(); – Fred
ho fatta così:
try {
Method setStripEnabled = tabWidget.getClass().getDeclaredMethod(
"setStripEnabled", boolean.class);
setStripEnabled.invoke(tabWidget, true);
Method setLeftStripDrawable = tabWidget.getClass()
.getDeclaredMethod("setLeftStripDrawable", int.class);
setLeftStripDrawable.invoke(tabWidget, R.drawable.tab_line);
Method setRightStripDrawable = tabWidget.getClass()
.getDeclaredMethod("setRightStripDrawable", int.class);
setRightStripDrawable.invoke(tabWidget, R.drawable.tab_line);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
- 1. TabWidget Height
- 2. Best practice per compatibilità con le versioni precedenti delle API
- 3. stile personalizzato per TabWidget di Android
- 4. API 5.0 JobScheduler per Android su versioni precedenti?
- 5. Imposta il tema Holo nelle versioni precedenti di Android?
- 6. Valori aggregati nelle API REST
- 7. È possibile supportare una funzione simile a setScrollY() (ScrollView API 14) per livelli API precedenti?
- 8. C'è un limite come max_input_vars nelle versioni precedenti alla 5.3.9?
- 9. Progettazione API che garantisce la compatibilità con le versioni precedenti
- 10. Non voglio le icone sul mio TabWidget
- 11. Scheda AndroidHost e tabWidget problema icona
- 12. android: orientation = "vertical" non funziona con TabWidget
- 13. TabWidget Colore bianco in primo piano?
- 14. fratelli precedenti selettori per jQuery
- 15. NotificationManager getActiveNotifications() per dispositivi precedenti
- 16. Google Chrome Socket API nelle estensioni
- 17. getSize() non supportato nelle versioni precedenti del sistema operativo Android, getWidth()/getHeight() deprecato
- 18. Visualizzazione calendario per Android GingerBread e versioni precedenti (API <11)
- 19. Supporto TestFlight per iOS7 e precedenti?
- 20. Finitura Android attività precedenti per la navigazione
- 21. Come ottenere setVideoScalingMode per le versioni precedenti di Android
- 22. Come posso compilare il codice Delphi documentato nelle versioni Delphi precedenti (<2005)
- 23. Ottenere i record precedenti e precedenti all'interno della stessa query
- 24. -fembed-codice binario che non è supportato nelle versioni di iOS precedenti alla 6.0
- 25. "Falling back PROMPT mode since _cordovaNative is missing" nelle precedenti versioni di Android SDK
- 26. AndroidKeystore su 4.1 API
- 27. Patch esistenti per Android Tabwidget per consentire le schede sul lato sinistro?
- 28. API di connessione nelle vicinanze per Android - non funziona per alcuni dispositivi
- 29. Come modellare un TabWidget in Ice Cream Sandwich?
- 30. libreria di supporto Android (cardView, RecyclerView) nelle versioni precedenti con target kitkat
ho avuto la schede nella parte inferiore dello schermo, Così ho fatto come qui sotto ... ho messo android: layout_marginBottom = "- 10dip" spostando il bottomStrip fuori dallo schermo ma desidero essere il modo esatto per farlo ... grazie –
amithgc