Dar*_*ski 2 android android-tabhost android-tabs
使用我的标签设置设计时遇到问题.所以我为tabHost中添加的每个tabspec创建了选择器.这是它的样子:

所以这是我的标签活动:
public class TabLayouts extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabhost);
TabHost tabHost = getTabHost();
tabHost.getTabWidget().setStripEnabled(false);
TabSpec latest = tabHost.newTabSpec(getString(R.string.latest_title));
tabHost.setBackgroundResource(R.drawable.tabbar);
// setting Title and Icon for the Tab
latest.setIndicator(getString(R.string.latest_title), getResources().getDrawable(R.drawable.latest_albums_sel));
Intent latestAlbums = new Intent(this, LatestAlbums.class);
latest.setContent(latestAlbums);
TabSpec favorites = tabHost.newTabSpec(getString(R.string.favorites_title));
favorites.setIndicator(getString(R.string.favorites_title), getResources().getDrawable(R.drawable.favorites_sel));
Intent favoritesInt = new Intent(this, Favorites.class);
favorites.setContent(favoritesInt);
TabSpec downloaded = tabHost.newTabSpec(getString(R.string.downloaded_title));
downloaded.setIndicator(getString(R.string.downloaded_title), getResources().getDrawable(R.drawable.downloaded_sel));
Intent downloadedIntent = new Intent(this, Downloaded.class);
downloaded.setContent(downloadedIntent);
tabHost.addTab(latest);
tabHost.addTab(favorites);
tabHost.addTab(downloaded);
}
}
Run Code Online (Sandbox Code Playgroud)
我的一个选择者:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- PRESSED TAB -->
<item android:top="0dp" android:left="0dp" android:right="0dp" android:bottom="0dp"
android:state_pressed="true"
android:drawable="@drawable/menu3_pr"
/>
<!-- INACTIVE TABS -->
<item android:top="0dp" android:left="0dp" android:right="0dp" android:bottom="0dp"
android:state_selected="false"
android:state_focused="false"
android:state_pressed="false"
android:drawable="@drawable/menu3_nr"
/>
<!-- ACTIVE TAB -->
<item android:top="0dp" android:left="0dp" android:right="0dp" android:bottom="0dp"
android:state_selected="true"
android:state_focused="false"
android:state_pressed="false"
android:drawable="@drawable/menu3_pr"
/>
<!-- SELECTED TAB -->
<item android:top="0dp" android:left="0dp" android:right="0dp" android:bottom="0dp"
android:state_focused="true"
android:state_selected="true"
android:state_pressed="false"
android:drawable="@drawable/menu3_pr"
/>
</selector>
Run Code Online (Sandbox Code Playgroud)
我的tabhost布局:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:background="@drawable/tabbar"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout
android:background="@drawable/background"
android:layout_above="@android:id/tabs"
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="match_parent"/>
<TabWidget
android:showDividers="none"
android:layout_alignParentBottom="true"
android:id="@android:id/tabs"
android:scaleY="0.8"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题吗?
这是一种简单的技术,你应该使用.setIndicator()传递的一个参数
latest.setIndicator(getString(R.string.latest_title)).
Run Code Online (Sandbox Code Playgroud)
以上你正在使用
.setIndicator(getString(R.string.latest_title), getResources().getDrawable(R.drawable.latest_albums_sel))
Run Code Online (Sandbox Code Playgroud)
现在删除第二个参数
getResources().getDrawable(R.drawable.latest_albums_sel)
从您的代码和何时添加所有选项卡,如
tabHost.addTab(latest);
tabHost.addTab(favorites);
tabHost.addTab(downloaded);
Run Code Online (Sandbox Code Playgroud)
使用下面的代码
tabHost.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.latest);
tabHost.getTabWidget().getChildAt(1).setBackgroundResource(R.drawable.favorites);
tabHost.getTabWidget().getChildAt(2).setBackgroundResource(R.drawable.downloaded);
Run Code Online (Sandbox Code Playgroud)
你完成了:)这有助于我希望你也能解决你的问题.
| 归档时间: |
|
| 查看次数: |
1309 次 |
| 最近记录: |