任何人都可以在 Android 中提供 TabHost 的示例代码吗?
Posted
技术标签:
【中文标题】任何人都可以在 Android 中提供 TabHost 的示例代码吗?【英文标题】:can anyone give sample code for TabHost in Android? 【发布时间】:2010-10-31 13:17:58 【问题描述】:我需要示例代码来在 android 中创建 TabHost。 谁能帮帮我。
【问题讨论】:
this question 的答案列出了示例代码的所有问题,以及人们找到的解决方法。 本教程可能对您有所帮助learnncode.wordpress.com/2013/12/18/… 【参考方案1】:Android 开发者网站有一个出色的完整代码示例,用于使用 TabWidget
和 TabHost
在 Android 中创建选项卡。
查看Hello, TabWidget。
【讨论】:
是什么让我对他们的例子发疯?他们不包含所有必要的信息。取行'mTabHost = getTabHost();'例如 - 没有事先提及或描述“mTabHost”。而且,他们的另一个选项卡示例有阻止它编译的错字。而且,当它被编译时,它会“核心转储”。【参考方案2】:我已经完成了关于显示分数的 tabhost 相关代码
TabHost host = getTabHost();
host.setup ();
TabSpec allScoresTab = host.newTabSpec("allTab");
allScoresTab.setIndicator(getResources().getString(R.string.all_scores), getResources().getDrawable(android.R.drawable.star_on));
allScoresTab.setContent(R.id.ScrollViewAllScores);
host.addTab(allScoresTab);
TabSpec friendScoresTab = host.newTabSpec("friendsTab");
friendScoresTab.setIndicator(getResources().getString(R.string.friends_scores), getResources().getDrawable(android.R.drawable.star_on));
friendScoresTab.setContent(R.id.ScrollViewFriendScores);
host.addTab(friendScoresTab);
host.setCurrentTabByTag("allTab");
我的 xml 包含:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:layout_
android:background="@drawable/bkgrnd">
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_
android:layout_>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ImageView_Header"
android:layout_
android:layout_
android:src="@drawable/quizicon"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true">
</ImageView>
<TextView
android:id="@+id/TextView01"
android:layout_
android:text="@string/scores"
android:textSize="@dimen/screen_title_size"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="10"
android:layout_
android:layout_gravity="fill_horizontal|center"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:shadowColor="@android:color/white"
android:textColor="@color/title_color">
</TextView>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ImageView_Header2"
android:layout_
android:src="@drawable/quizicon"
android:layout_gravity="right|center_vertical"
android:layout_
android:layout_alignParentRight="true"
android:layout_alignParentTop="true">
</ImageView>
</RelativeLayout>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_
android:layout_>
<LinearLayout
android:orientation="vertical"
android:layout_
android:layout_>
<TabWidget
android:id="@android:id/tabs"
android:layout_
android:layout_ />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_
android:layout_>
<ScrollView android:id="@+id/ScrollViewAllScores" android:layout_ android:layout_ android:scrollbars="vertical">
<TableLayout android:id="@+id/TableLayout_AllScores" android:layout_ android:layout_ android:stretchColumns="*" />
</ScrollView>
- <ScrollView android:id="@+id/ScrollViewFriendScores" android:layout_ android:layout_ android:scrollbars="vertical">
<TableLayout android:id="@+id/TableLayout_FriendScores" android:layout_ android:layout_ android:stretchColumns="*" />
</ScrollView>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
【讨论】:
【参考方案3】:activity_main.xml 包含
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_
android:layout_ >
<RelativeLayout
android:layout_
android:layout_ >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_
android:layout_
android:layout_above="@+id/scroll" />
<HorizontalScrollView
android:id="@+id/scroll"
android:layout_
android:layout_
android:scrollbars="none"
android:layout_alignParentBottom="true" >
<TabWidget
android:id="@android:id/tabs"
android:layout_
android:layout_
android:background="@drawable/tabs_bg" />
</HorizontalScrollView>
</RelativeLayout>
</TabHost>
而java代码是
TabHost tabHost = getTabHost();
TabSpec spec;
Intent intent;
//Home Tab
View view1 = LayoutInflater.from(MainActivity.this).inflate(R.layout.home, null);
intent = new Intent(MainActivity.this, Firstclass.class);
spec = tabHost.newTabSpec("HOME").setIndicator(view1)
.setContent(intent);
tabHost.addTab(spec);
//Calendar Tab
View view2 = LayoutInflater.from(MainActivity.this).inflate(R.layout.calendar_tab, null);
intent = new Intent(MainActivity.this, Calendar.class);
spec = tabHost.newTabSpec("CALENDAR").setIndicator(view2)
.setContent(intent);
tabHost.addTab(spec);
【讨论】:
【参考方案4】:res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
tools:context=".MainActivity">
<TabHost
android:id="@+id/tabHost"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_
android:layout_></TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_
android:layout_>
<LinearLayout
android:id="@+id/tab1"
android:layout_
android:layout_
android:background="#ffc916"
android:orientation="vertical">
<TextView
android:layout_
android:layout_
android:text="This is tab 1" />
</LinearLayout>
<LinearLayout
android:id="@+id/tab2"
android:layout_
android:layout_
android:background="#da8200"
android:orientation="vertical">
<TextView
android:layout_
android:layout_
android:text="This is tab 2" />
</LinearLayout>
<LinearLayout
android:id="@+id/tab3"
android:layout_
android:layout_
android:background="#5b89ff"
android:orientation="vertical">
<TextView
android:layout_
android:layout_
android:text="This is tab 3" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
src/MainActivity.java
public class MainActivity extends AppCompatActivity
TabHost tabHost;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabHost host = (TabHost)findViewById(R.id.tabHost);
host.setup();
//Tab 1
TabHost.TabSpec spec = host.newTabSpec("Tab One");
spec.setContent(R.id.tab1);
spec.setIndicator("Tab One");
host.addTab(spec);
//Tab 2
spec = host.newTabSpec("Tab Two");
spec.setContent(R.id.tab2);
spec.setIndicator("Tab Two");
host.addTab(spec);
//Tab 3
spec = host.newTabSpec("Tab Three");
spec.setContent(R.id.tab3);
spec.setIndicator("Tab Three");
host.addTab(spec);
@Override
public boolean onCreateOptionsMenu(Menu menu)
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
@Override
public boolean onOptionsItemSelected(MenuItem item)
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings)
return true;
return super.onOptionsItemSelected(item);
您可以按照这些教程寻求帮助
Creating a tabbed UI with TabHost
Android Tab Layout Tutorial
【讨论】:
以上是关于任何人都可以在 Android 中提供 TabHost 的示例代码吗?的主要内容,如果未能解决你的问题,请参考以下文章