Фон вкладки Android TabHost меньше по высоте

У меня проблема с настройкой дизайна с вкладками. Итак, я создал селектор для каждой вкладки, которую добавляю в tabHost. Вот как это выглядит:

введите здесь описание изображения

Итак, вот моя активность на вкладке:

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);
    }
}

И один из моих селекторов:

<?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>

И мой макет табуляции:

<?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>

Может ли кто-нибудь помочь мне решить эту проблему?


person Darko Petkovski    schedule 29.03.2013    source источник
comment
пожалуйста, перейдите по ссылке, надеюсь, это поможет вам.   -  person Amol Sawant 96 Kuli    schedule 30.03.2013


Ответы (1)


Это простая техника, вы должны использовать .setIndicator() с одним переданным аргументом, т.е.

latest.setIndicator(getString(R.string.latest_title)). 

Выше вы используете

.setIndicator(getString(R.string.latest_title), getResources().getDrawable(R.drawable.latest_albums_sel))

теперь удалите второй аргумент, который

getResources().getDrawable(R.drawable.latest_albums_sel)

из вашего кода и когда вы добавите все вкладки, например

tabHost.addTab(latest);
tabHost.addTab(favorites);
tabHost.addTab(downloaded); 

используйте код ниже

tabHost.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.latest);
tabHost.getTabWidget().getChildAt(1).setBackgroundResource(R.drawable.favorites);
tabHost.getTabWidget().getChildAt(2).setBackgroundResource(R.drawable.downloaded);

и все готово :) Это помогло мне, надеюсь, вы тоже решите свою проблему.

person Zubair Ahmed    schedule 04.10.2013
comment
я долго боролся с этой проблемой .. простая и полезная техника - person png; 25.11.2013