Android supprimer l'espace entre les onglets dans tabwidget
J'ai fait une application qui contient des onglets comme dans HelloTabActivity, il y a aussi de l'espace entre ces onglets, quelqu'un peut-il suggérer comment faire pour supprimer cet espace et il y a aussi une ligne grise sous les onglets comment cela peut-il être retiré?
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" >
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="none">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</HorizontalScrollView>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" />
</LinearLayout>
</TabHost>
</LinearLayout>
styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme" parent="@android:style/Theme">
<item name="android:tabWidgetStyle">@style/CustomTabWidget</item>
</style>
<style name="CustomTabWidget" parent="@android:style/Widget.TabWidget">
<item name="android:textAppearance">@style/CustomTabWidgetText</item>
</style>
<style name="CustomTabWidgetText"
parent="@android:style/TextAppearance.Widget.TabWidget">
<item name="android:textSize">10sp</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">#1589FF</item>
<item name="android:padding">3dip</item>
</style>
</resources>
Activité
public class InfralineTabWidget extends TabActivity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources(); //Resource object to get Drawables
TabHost tabHost = (TabHost)getTabHost(); //The activity TabHost
TabHost.TabSpec spec; //Resusable TabSpec for each tab
Intent intent; //Reusable Intent for each tab
//Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, TopNewsActivity.class);
//Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("topNews").setIndicator("Top News", res.getDrawable(R.drawable.tab_news)).setContent(intent);
tabHost.addTab(spec);
//Do the same for the other tabs
intent = new Intent().setClass(this, PowerActivity.class);
spec = tabHost.newTabSpec("power").setIndicator("Power", res.getDrawable(R.drawable.tab_power)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, EnergyActivity.class);
spec = tabHost.newTabSpec("energy").setIndicator("Renewable Energy", res.getDrawable(R.drawable.tab_energy)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, CoalActivity.class);
spec = tabHost.newTabSpec("coal").setIndicator("Coal", res.getDrawable(R.drawable.tab_coal)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, OilnGasActivity.class);
spec = tabHost.newTabSpec("oilnGas").setIndicator("Oil & Gas", res.getDrawable(R.drawable.tab_oilngas)).setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
tabHost.getTabWidget().getChildAt(0).setLayoutParams(new LinearLayout.LayoutParams(100,25));
tabHost.getTabWidget().getChildAt(1).setLayoutParams(new LinearLayout.LayoutParams(100,25));
tabHost.getTabWidget().getChildAt(2).setLayoutParams(new LinearLayout.LayoutParams(100,25));
tabHost.getTabWidget().getChildAt(3).setLayoutParams(new LinearLayout.LayoutParams(100,25));
tabHost.getTabWidget().getChildAt(4).setLayoutParams(new LinearLayout.LayoutParams(100,25));
}
}
Maintenant, je veux enlever le noir des espaces entre les onglets, et il doit être comme ils sont connectés, et aussi je ne suis pas en mesure de supprimer la ligne grise sous les onglets.
Grâce
merci de partager quelques captures d'écran sur votre problème, et les styles et les thèmes de xml que vous utilisez. Peut arriver, que vous définissez un mondial séparateur de style quelque part (mise en page xml ou code), et c'est ce qui vous dérange maintenant.
Je l'ai mis dans le code de bien vouloir jeter un oeil. 🙂
Je l'ai mis dans le code de bien vouloir jeter un oeil. 🙂
OriginalL'auteur ReNa | 2011-04-27
Vous devez vous connecter pour publier un commentaire.
Pour la suppression de la ligne grise au bas de votre tabbar, vous pouvez définir
Que de la suppression de l'écart entre les onglets.. Le meilleur moyen serait d'utiliser votre propre retirable sans rembourrages. Vous pouvez utiliser des images pour cela, ou vous pouvez créer vos onglets parcours via xml, par exemple à l'intérieur d'un
<layer_list>
de l'élément racine:et de définir cette drawable à l'arrière-plan de votre
TabWidget
.Pour voir comment personnaliser vos onglets, il y a beaucoup de tutoriels sur le web. Par exemple ce un par Josh est court et a une belle explication.
Mise à jour
Ici je partage un petit échantillon de tabwidget à l'aide des onglets personnalisés (en fonction de votre code) pour obtenir la sortie suivante:
Ce dont vous avez besoin:
sélectionné, concentré et non sélectionnés
les états des onglets)
et le fond de l'différents
les états)
main.xml
(supprimer les déclarations de style)
Les trois couche d'un drawable:
tab_normal.xml
,tab_focused.xml
,tab_selected.xml
drawable/tab_normal.xml:
drawable/tab_focused.xml:
drawable/tab_selected.xml:
Les deux état un drawable:
tab_background_selector.xml
,tab_text_selector.xml
drawable/tab_background_selector.xml:
drawable/tab_text_selector.xml:
La nouvelle mise en page pour les onglets:
tab.xml
layout/tab.xml
main.xml:
InfralineTabWidget.java:
Et ce qu'il est.
Pour créer directement acculé onglets, juste de perdre le coin des spécifications de la couche drawable fichiers xml.
Jouer sur les couleurs, traits, etc., à l'issue fonction de vos préférences.
veuillez voir ma mise à jour pour un exemple de travail d'onglets personnalisés. jouer avec les "frontières", les traits, les couleurs, les angles, pour les obtenir look que vous voulez.
Il semble ridicule d'avoir à passer par tout cela pour simplement changer l'arrière-plan dessiné des onglets en fonction de l'état... super code si
salut @rekaszeru comment puis-je appliquer la couleur différente pour chaque onglet? S'il vous plaît aider
Est-il possible? Ou dois-je créer séparé xmls pour chaque onglet?
OriginalL'auteur rekaszeru
utiliser android:showDividers="none" dans le xml de mise en page.
OriginalL'auteur Engin OZTURK
Si votre cible est en Nid d'abeille à partir, vous pouvez utiliser le code suivant.
OriginalL'auteur bitbybit
Pour enlever l'excès d'écart entre les onglets, on peut measureWithLargestChild attribut sur tabwidget de faux
OriginalL'auteur Jeevan
Une ligne magique.
Fait
OriginalL'auteur Hiren Patel