このタイプのカスタムタブを作成してアプリに実装したい..これを行う方法を知りたい..リンクがある場合は、私を共有してください...事前に感謝します..
質問する
107 次
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
これは役に立つかもしれません。または、自分用のカスタム タブ コントロールを作成することもできます
于 2013-02-14T13:15:23.313 に答える