2012-02-10 8 views

Odpowiedz

11

myślę, następujące podejście jest najprostsza . Po prostu trzeba skonfigurować następujące odkształcalne (właściwie, to Android domyślnym odkształcalne na kartach) jako tło zakładkach:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Non focused states --> 
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" /> 
    <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" /> 
    <!-- Focused states --> 
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" /> 
    <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" /> 
    <!-- Pressed --> 
    <item android:state_pressed="true" android:drawable="@drawable/tab_press" /> 
</selector> 

gdzie tab_press, tab_focus i tab_selected kanału alfa byłby PNG (wolałbym 9-patches) z strzałka w dół i przezroczysty region w pobliżu. tab_unselected drawable nie ma tej strzałki, ale nadal będzie mieć ten sam przezroczysty region. Pozostaje tylko określić ujemny margines dolny dla twojego TabWidget. Jego wartość zależy od wysokości strzałki (nie zapomnij użyć density independent jednostek):

explanatory scheme

+0

Ów pomógł trochę bit.just decribe margines abot –

+0

Zobacz obraz, który dodałem. To powinno wyjaśnić moją sugestię. –

+0

Naprawdę świetna odpowiedź. – Akram

-2

można dodawać obrazy do układu z kartami:

<RelativeLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TabWidget 
     android:id="@android:id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="0dip" /> 
    <FrameLayout 
     android:fadingEdge="none" 
     android:id="@android:id/tabcontent" 
     android:layout_width="fill_parent" 
     android:layout_height="0px" 
     android:layout_below="@android:id/tabs" 
     android:layout_alignParentBottom="true" 
     android:padding="0px" /> 
    <ImageView 
     .... 
     android:id="@+id/down_arrow_left"/> 
    <ImageView 
     .... 
     android:id="@+id/down_arrow_right"/> 
</RelativeLayout> 

i dodać słuchacza w swojej działalności zakładka:

getTabHost().setOnTabChangedListener(new OnTabChangeListener() { 
     public void onTabChanged(String tabId) { 
      if (tabId.equels("left")){ 
       findViewById(R.id.down_arrow_left).setVisibility(View.VISIBLE); 
       findViewById(R.id.down_arrow_right).setVisibility(View.INVISIBLE); 
      } else if (tabId.equels("right")){ 
       findViewById(R.id.down_arrow_left).setVisibility(View.INVISIBLE); 
       findViewById(R.id.down_arrow_right).setVisibility(View.VISIBLE); 
      } 
     } 
    }); 
0

tab_0_info.xml:

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


private void addTab(int resouceTabId, int drawableId, 
     Class<? extends ActivityGroup> groupActivityClass) 
{ 
    Intent intent = new Intent(this, groupActivityClass); 
    TabHost.TabSpec spec = tabHost.newTabSpec("tab" + resouceTabId); 

    View tabIndicator = LayoutInflater.from(this).inflate(
      R.layout.tab_indicator, getTabWidget(), false); 

    TextView title = (TextView) tabIndicator.findViewById(R.id.title); 
    title.setText(resouceTabId); 
    ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon); 
    icon.setImageResource(drawableId); 

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

} 

//addTab(R.string.yourTabTitle, R.drawable.tab_0_info, YourGroup.class); 
Powiązane problemy