0

このタイプのカスタムタブを作成してアプリに実装したい..これを行う方法を知りたい..リンクがある場合は、私を共有してください...事前に感謝します..ここに画像の説明を入力

4

2 に答える 2

1

2か月前に同じ要件を取得しました....非常に多くの例を検索しましたが、正しい解決策が見つかりません。

実際、タブ用に 2 種類の画像をデザインしました...同じ画像ですが、解像度が 2 種類あります

最後に、以下のようなxmlを設計しました...うまくいきました

<RelativeLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"    
 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">

    <FrameLayout android:id="@android:id/tabcontent"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_weight="1">
    </FrameLayout>
     <TabWidget android:id="@android:id/tabs"
        android:layout_width="fill_parent" android:layout_height="55dp" 

          />
</LinearLayout>
</TabHost>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
>
<ImageView 
android:id="@+id/tab1"    
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_mybars_on"
/>   
<ImageView 
android:id="@+id/tab2"    
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_mybeers_on"
/>    
<ImageView
android:id="@+id/tab3" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_events_on"
/>    
<ImageView 
android:id="@+id/tab4"    
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_coupons_on"
/>    
<ImageView 
android:id="@+id/tab5"    
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_brewedlife_on"
 />     
</LinearLayout>

</RelativeLayout>

最後に、タブ アクティビティのコード:

public class DownTabActivity extends TabActivity implements OnClickListener
{   
public static TabHost host;
TabSpec spec;
static  int loadingcheck=0;
public static String tabTag;
ImageView tab[]=new ImageView[5];

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tab);

    spec= null;
    host= getTabHost();
    host.setFocusable(false);
 //     host.getTabWidget().setDividerDrawable(R.drawable.tabbar_divider);

    host.addTab(createTab("My Bars","MyBars",R.drawable.tab_mybars,MyBarsTabActivity.class));

    host.addTab(createTab("My Beers","MyBeers",R.drawable.tab_mybeers, MyBeersTabActivity.class));

    host.addTab(createTab("Events","Events",R.drawable.tab_myevents, MyEventsTabActivity.class));

    host.addTab(createTab("Coupons","Coupons",R.drawable.tab_coupons, CouponsTabActivity.class));

    host.addTab(createTab("Brewed Life","BrewedLife",R.drawable.tab_brewedlife, BrewedLifeTabActivity.class));

    host.setOnClickListener(this);

    tab[0]=(ImageView)findViewById(R.id.tab1);
    tab[1]=(ImageView)findViewById(R.id.tab2);
    tab[2]=(ImageView)findViewById(R.id.tab3);
    tab[3]=(ImageView)findViewById(R.id.tab4);
    tab[4]=(ImageView)findViewById(R.id.tab5);      

    tabTag = host.getCurrentTabTag(); 
    Log.e("tab",tabTag);

    tab[host.getCurrentTab()].setVisibility(View.VISIBLE);


    host.setOnTabChangedListener(new TabHost.OnTabChangeListener()
    {
        public void onTabChanged(String arg0)
        {
            Log.e("tab argument is", arg0);

            for(int i=0;i<5;i++){
            if(i==host.getCurrentTab()) tab[i].setVisibility(View.VISIBLE);
            else tab[i].setVisibility(View.INVISIBLE);
            }
        }    
    });


}

private TabSpec createTab(final String title, final String tag,final int drawable,final Class<?> intentClass)
{
    final Intent intent = new Intent().setClass(this, intentClass);

    final View tab = LayoutInflater.from(getTabHost().getContext()).inflate(R.layout.tab_indicator, null);
    ((TextView)tab.findViewById(R.id.tab_text)).setText("");

    ((ImageView)tab.findViewById(R.id.tab_icon)).setBackgroundResource(drawable);
    return getTabHost().newTabSpec(tag).setIndicator(tab).setContent(intent);
}

public void onClick(View v) 
{
    Log.v("on click Down tab", "on click Down tab");
}
}
于 2013-02-14T13:21:37.130 に答える
0

http://jqueryui.com/tabs/

これは役に立つかもしれません。または、自分用のカスタム タブ コントロールを作成することもできます

于 2013-02-14T13:15:23.313 に答える