我想创建这种类型的自定义选项卡并在我的应用程序中实现..我想知道如何做到这一点..如果您有任何链接,请分享我...提前致谢..
问问题
107 次
2 回答
1
我在两个月前得到了同样的要求....我搜索了很多例子,但我找不到正确的解决方案。
实际上我为标签设计了两种类型的图像......相同的图像但两种不同的分辨率
最后我设计了如下的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 回答