自定义menu替代TabHost中的TabWidget

  1. 云栖社区>
  2. 博客>
  3. 正文

自定义menu替代TabHost中的TabWidget

一叶飘舟 2012-03-08 22:26:00 浏览725
展开阅读全文

布局xml

<?xml version="1.0" encoding="UTF-8"?>
<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: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="0.0dip"
			android:layout_weight="1.0" />
		<TabWidget android:id="@android:id/tabs" android:visibility="gone"
			android:layout_width="fill_parent" android:layout_height="wrap_content"
			android:layout_weight="0.0" />

		<LinearLayout android:id="@+id/all" android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:gravity="bottom" 
			android:background="@drawable/down_title">


			<LinearLayout android:id="@+id/linear_score"
				android:layout_width="wrap_content" android:layout_height="wrap_content"
				android:orientation="vertical" android:layout_weight="1">
				<RelativeLayout android:layout_width="wrap_content"
					android:layout_height="wrap_content" android:orientation="vertical"
					android:layout_weight="1" android:layout_gravity="center_vertical">
					<ImageView android:id="@+id/back_score"
						android:layout_width="wrap_content" android:layout_height="wrap_content"
						android:src="@drawable/bottom_backs" android:visibility="invisible" />
					<LinearLayout android:layout_width="wrap_content"
						android:layout_centerVertical="true" android:layout_height="wrap_content"
						android:orientation="vertical" android:paddingLeft="17dip">
						<ImageView android:id="@+id/image_score"
							android:layout_width="wrap_content" android:layout_height="wrap_content"
							android:src="@drawable/image_score" android:layout_weight="1"
							android:layout_gravity="center_horizontal" />
						<TextView android:layout_width="wrap_content"
							android:layout_gravity="center_horizontal" android:layout_height="wrap_content"
							android:text="比分" android:layout_weight="1" 
							style="@style/bottom_title"/>
					</LinearLayout>
				</RelativeLayout>
			</LinearLayout>


			<LinearLayout android:id="@+id/linear_attention"
				android:layout_width="wrap_content" android:layout_height="wrap_content"
				android:orientation="vertical" android:layout_weight="1">
				<RelativeLayout android:layout_width="wrap_content"
					android:layout_height="wrap_content" android:orientation="vertical"
					android:layout_weight="1">
					<ImageView android:id="@+id/back_attention"
						android:layout_width="wrap_content" android:layout_height="wrap_content"
						android:src="@drawable/bottom_backs" android:visibility="invisible" />
					<LinearLayout android:layout_width="wrap_content"
						android:layout_centerVertical="true" android:layout_height="wrap_content"
						android:orientation="vertical" android:layout_weight="1"
						android:paddingLeft="17dip">
						<ImageView android:id="@+id/image_attention"
							android:layout_width="wrap_content" android:layout_height="wrap_content"
							android:src="@drawable/image_attention" android:layout_weight="1"
							android:layout_gravity="center" />
						<TextView android:layout_width="wrap_content"
							android:layout_height="wrap_content" android:text="关注"
							android:layout_weight="1" android:layout_gravity="center"
							style="@style/bottom_title" />
					</LinearLayout>
				</RelativeLayout>
			</LinearLayout>


			<LinearLayout android:id="@+id/linear_odds"
				android:layout_width="wrap_content" android:layout_height="wrap_content"
				android:orientation="vertical" android:layout_weight="1">
				<RelativeLayout android:layout_width="wrap_content"
					android:layout_height="wrap_content" android:orientation="vertical"
					android:layout_weight="1">
					<ImageView android:id="@+id/back_odds"
						android:layout_width="wrap_content" android:layout_height="wrap_content"
						android:src="@drawable/bottom_backs" android:visibility="invisible" />
					<LinearLayout android:layout_width="wrap_content"
						android:layout_centerVertical="true" android:layout_height="wrap_content"
						android:orientation="vertical" android:layout_weight="1"
						android:paddingLeft="10dip">
						<ImageView android:id="@+id/image_odds"
							android:layout_width="wrap_content" android:layout_height="wrap_content"
							android:src="@drawable/image_odds" android:layout_weight="1"
							android:layout_gravity="center" />
						<TextView android:layout_width="wrap_content"
							android:layout_height="wrap_content" android:text="聊天室"
							android:layout_weight="1" android:layout_gravity="center" 
							style="@style/bottom_title"/>
					</LinearLayout>
				</RelativeLayout>
			</LinearLayout>


			<LinearLayout android:id="@+id/linear_choiseleague"
				android:layout_width="wrap_content" android:layout_height="wrap_content"
				android:orientation="vertical" android:layout_weight="1">
				<RelativeLayout android:layout_width="wrap_content"
					android:layout_height="wrap_content" android:orientation="vertical"
					android:layout_weight="1">
					<ImageView android:id="@+id/back_choiseleague"
						android:layout_width="wrap_content" android:layout_height="wrap_content"
						android:src="@drawable/bottom_backs" android:visibility="invisible" />
					<LinearLayout android:layout_width="wrap_content"
						android:layout_centerVertical="true" android:layout_height="wrap_content"
						android:orientation="vertical" android:layout_weight="1"
						android:gravity="center_horizontal" android:paddingLeft="17dip">
						<ImageView android:id="@+id/image_choiseleague"
							android:layout_width="wrap_content" android:layout_height="wrap_content"
							android:src="@drawable/image_choiseleague" android:layout_weight="1" />
						<TextView android:layout_width="wrap_content"
							android:layout_height="wrap_content" android:text="论坛"
							android:layout_weight="1" android:layout_gravity="center" 
							style="@style/bottom_title"/>

					</LinearLayout>
				</RelativeLayout>
			</LinearLayout>


			<LinearLayout android:id="@+id/linear_more"
				android:layout_width="wrap_content" android:layout_height="wrap_content"
				android:orientation="vertical" android:layout_weight="1">
				<RelativeLayout android:layout_width="wrap_content"
					android:layout_height="wrap_content" android:orientation="vertical"
					android:layout_weight="1">
					<ImageView android:id="@+id/back_more"
						android:layout_width="wrap_content" android:layout_height="wrap_content"
						android:src="@drawable/bottom_backs" android:visibility="invisible" />
					<LinearLayout android:layout_width="wrap_content"
						android:layout_centerVertical="true" android:layout_height="wrap_content"
						android:orientation="vertical" android:layout_weight="1"
						android:gravity="center" android:paddingLeft="17dip">
						<ImageView android:id="@+id/image_more"
							android:layout_width="wrap_content" android:layout_height="wrap_content"
							android:src="@drawable/image_more" android:layout_weight="1"
							android:layout_gravity="center" />
						<TextView android:layout_width="wrap_content"
							android:layout_height="wrap_content" android:text="更多"
							android:layout_weight="1" android:layout_gravity="center"
							style="@style/bottom_title" />
					</LinearLayout>
				</RelativeLayout>
			</LinearLayout>
		</LinearLayout>
	</LinearLayout>
</TabHost>  

首先,类要继承TabActivity类和实现onclick方法

MainActivity extends TabActivity implements OnClickListener
添加选项卡

// 实例化TabHost
TabHost mHost = this.getTabHost();

// 添加选项卡
		mHost.addTab(mHost.newTabSpec("ONE").setIndicator("ONE").setContent(
				new Intent(this, ScoreActivity.class)));
		mHost.addTab(mHost.newTabSpec("TWO").setIndicator("TWO").setContent(
				new Intent(this, FollowActivity.class)));
		mHost.addTab(mHost.newTabSpec("THREE").setIndicator("THREE")
				.setContent(new Intent(this, ChatRoomActivity.class)));
		mHost.addTab(mHost.newTabSpec("FOUR").setIndicator("FOUR").setContent(
				new Intent(this, ForumActivity.class)));
		mHost.addTab(mHost.newTabSpec("FIVE").setIndicator("FIVE").setContent(
				new Intent(this, MoreMenuActivity.class)));

然后操作每个选项卡点击事件


		linear_score.setOnClickListener(this);
		linear_attention.setOnClickListener(this);
		linear_odds.setOnClickListener(this);
		linear_choiseleague.setOnClickListener(this);
		linear_more.setOnClickListener(this);

public void onClick(View view) {
		switch (view.getId()) {
		case R.id.linear_score:
			mHost.setCurrentTabByTag("ONE");
						break;
		case R.id.linear_attention:
			mHost.setCurrentTabByTag("TWO");
						break;
		case R.id.linear_odds:
			mHost.setCurrentTabByTag("THREE");
						break;
		case R.id.linear_choiseleague:
			mHost.setCurrentTabByTag("FOUR");
						break;
		case R.id.linear_more:
			mHost.setCurrentTabByTag("FIVE");
						break;
		}
	}


网友评论

登录后评论
0/500
评论
一叶飘舟
+ 关注