2011-11-08 11 views
5

jak uzyskać następujące konstrukcję im zakładkami enter image description herejak dostać to umieszczenie zakładek

Gdy karta jest już wybrana, krzywą przycisk widoczny w danej karcie, a drugi być wspólne moszczu.

Myślałem o dodaniu stałego koloru tła, który ma być czerwony i umieszczam przyciski obrazu z krzywą i bez krzywej. Ale chcę wiedzieć, czy zostanie naprawiony dla wszystkich urządzeń z systemem Android, ponieważ wat jest wysokość i szerokość przycisku? jak ustawić tabbar o stałej wysokości i szerokości ....

+0

+1 za przydatne pytanie. – Praveenkumar

+0

O czym tu mówisz: TabWidget lub ActionBar? –

Odpowiedz

2

znalazłem przez prosty sposób następująco

Aby uzyskać redline na dole im zakładkami dodałem view w zakładce następująco

<TabHost 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:id="@+id/linearLayout1" 
     android:layout_height="fill_parent" 
     android:orientation="vertical"> 

     <TabWidget 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@android:id/tabs" 
      android:layout_alignParentBottom="true" 
      android:layout_weight="0"> 
     </TabWidget> 

     <View android:layout_width="fill_parent" android:layout_height="4dip" android:background="#ff0000" /> 

     <FrameLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@android:id/tabcontent" 
      android:layout_weight="1"> 
     </FrameLayout> 

    </LinearLayout> 
</TabHost> 

Wtedy moja klasa umieszczenie zakładek jest następująca

public class CustomTabActivity extends TabActivity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.tabbar); 

     addTab1(FirstTab.class); 
     addTab2(SecondTab.class); 
     addTab3(FirstTab.class); 
     addTab4(SecondTab.class); 
    } 

    private void addTab1(Class<?> c) 
    { 
     TabHost tabHost = getTabHost(); 
     Intent intent = new Intent(this, c); 
     TabHost.TabSpec spec = tabHost.newTabSpec("tab"); 

     View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator1, getTabWidget(), false); 
     ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon1); 

     spec.setIndicator(tabIndicator); 
     spec.setContent(intent); 
     tabHost.addTab(spec); 
    } 
} 

Mój układ tab_indicator jest następujący

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="0dip" 
    android:layout_height="55dip"  
    android:layout_weight="1" 
    android:orientation="vertical" 
    android:padding="5dp"> 

    <ImageView android:id="@+id/icon1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:background="@drawable/tab1">  
    </ImageView> 
</RelativeLayout> 

tab1 w rozciągliwej to plik XML Selector następująco

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_focused="false" android:state_selected="false" 
     android:state_pressed="false" android:drawable="@drawable/home" /> 
    <item android:state_focused="false" android:state_selected="true" 
     android:state_pressed="false" android:drawable="@drawable/home_select_btn" /> 

</selector> 

Tutaj dodałem wybrany obraz z zakrętu i niewyselekcjonowanej obraz bez zakrętu, że chcę pokazać.

Ten sposób wydaje się być bardzo długi, ale czuję, że jest to ten sam wzór, który potrzebowałem.

0

Może przyda Ci się this example. Jest to ten sam rodzaj nawigacji, który ma aplikacja Google+.

Powiązane problemy