2011-06-01 31 views
12
benim uygulamada sekmeleri göstermek istiyorum

arasında ancak sekmeler arasında android varsayılan olarak bölücü satırını kaldırın budeğiştir sekmesi arka plan rengini ve sekmeler

      Tab1 | Tab2 | Tab3 | 

gibi bölücü çizgi vardır Ama bu

gibi sekmeleri göstermek istiyorum
      Tab1 Tab2 Tab3 

Bölücü çizgisini iki sekme arasında kaldırmak istiyorum ve ayrıca varsayılan olarak sekmeler arka plan rengi gri renktedir. bu yüzden bunu siyah renkle değiştirmek istiyorum.

Lütfen iki sekme arasında ayırıcı çizgisinin nasıl kaldırılacağını ve sekmelerin arka plan renginin nasıl değiştirileceğini söyleyin.

Şimdiden teşekkürler.

Saygılarımızla.

cevap

10

Sekme için kendi düzeninizi kullanmak için bu yöntemi ve Düzen'i kullanın. Bölücüyü çıkarmak için arka plandaki 9patch grafiğini kendi başınıza değiştirin.

public static View prepareTabView(Context context, String text, Drawable background) { 
    View view = LayoutInflater.from(context).inflate(R.layout.fake_native_tab, null); 
    TextView tv = (TextView) view.findViewById(R.id.fakeNativeTabTextView); 
    tv.setText(text); 
    view.setBackgroundDrawable(background); 
    return view; 
} 

fake_native_tab.xml: (sizin TabActivity iç)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/fakeNativeTabLayout" android:layout_width="wrap_content" 
android:layout_height="wrap_content" android:gravity="center" 
android:orientation="vertical" android:background="@drawable/default_tab_background"> 
<!-- 
     You can even define an Icon here (dont forget to set a custom icon in your code for each Tab): 
    <ImageView android:id="@+id/fakeNativeTabImageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:src="@drawable/icon" /> 
--> 
    <TextView android:id="@+id/fakeNativeTabTextView" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:textColor="@color/tab_text_color" android:textSize="@dimen/text_size_tiny" 
    android:text="Tab" android:ellipsize="marquee" /> 

</LinearLayout> 

Kullanımı:

/* Create Tabs */ 
// reusable Tab Spec 
TabHost.TabSpec spec; 
Intent tabIntent; 
tabHost = getTabHost(); 
Resources res = getResources(); 

// Tab 1: 
tabIntent = new Intent().setClass(this, Favorite.class); 
    spec = tabHost.newTabSpec(TAB_SOMETAB).setIndicator(
      prepareTabView(this, (String) getText(R.string.tab_favorite), res 
        .getDrawable(R.drawable.tab_favorite_background), 0)).setContent(tabIntent); 
tabHost.addTab(spec); 



// Tab 2: 
tabIntent = new Intent().setClass(this, History.class); 
spec = tabHost.newTabSpec(TAB_SOMEOTHERTAB).setIndicator(
      prepareTabView(this, (String) getText(R.string.tab_history), res 
        .getDrawable(R.drawable.tab_favorite_background), 0)).setContent(tabIntent); 
tabHost.addTab(spec); 
+0

sayesinde oldu ve ayrıca ben iki sekme arasında yer bölücü hattını kaldırmak istiyorum. Lütfen iki sekme arasındaki – Ramakrishna

+0

arasındaki bölücü çizgisinin nasıl çıkarılacağını söyleyin, sekmelerin genişliğini ve yüksekliğini programatik olarak ayarlamak mümkün, bu yüzden genişliğini genişletmeye çalışın ve sonra ... – Lavanya

+0

Sadece bir bölücü olmayan bir arka plan grafiğini kullanın içinde çizgi. – Mannaz

61

Kullanım:

tabHost.getTabWidget().setDividerDrawable(null); 

bölücü çizgileri kaldırmak için.

+0

satırları kaldırılır, ancak sekmeler arasındaki boşluk nedir? – MobileEvangelist

+0

Teşekkürler bir ton :) – Nevaeh

24

Bölücü görülebilen ICS'de sorun yaşadım. Çözümlerin hiçbiri aşağıdakiler dışında işe yaramadı.

<TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="60dp" 
      android:gravity="bottom" 
      android:layout_alignParentBottom="true" 
      android:fadingEdge="none" 
      android:showDividers="none" > 
     </TabWidget> 

Anahtar hat cevap vermek için android:showDividers="none"

+0

Bu doğru cevap yine de ... – erikaD

İlgili konular