панель вкладок скрывает проблему Android - PullRequest
4 голосов
/ 21 октября 2010

Я новичок в Android, я использую tabHost, добавляя в него некоторые вкладки, он работает довольно хорошо, но когда я поворачиваю свое устройство в альбомном режиме, он также работает там хорошо, но мне там не нужна панель вкладок, потому что оназанимает много места, и у меня также есть объявления Google, так что они оба занимают половину экрана и оставляют небольшое пространство для взаимодействия с пользователем. Все, что мне нужно, это решение, чтобы как-то скрыть панель вкладок, как мы можем сделать это в iphone, чтобы сделатьНемного места для взаимодействия с пользователем. Мне нужно срочное решение. Спасибо

Ответы [ 4 ]

6 голосов
/ 29 апреля 2011

Я думаю, вы должны обернуть свой виджет вкладки в любую ViewGroup, такую ​​как LinearLayout или RelativeLayout, и создать статическую функцию в вашем tabActivity, чтобы показать / скрыть эту обертку. Вот небольшой код, который может быть вам полезен.

<LinearLayout
        android:id="@+id/popupTabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone">
        <TabWidget android:id="@android:id/tabs"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent"></TabWidget>
    </LinearLayout>

Теперь ваша вкладка должна делать что-то вроде этого.

public class TabsView extends TabActivity { 
    public static LinearLayout popupTabs ;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        popupTabs = (LinearLayout) findViewById(R.id.popupTabs);

        // Your other code
        //............
        //............
    }

    // Show Tabs method
    public static void showTabs(){
        popupTabs.setVisibility(ViewGroup.VISIBLE);
    }

    // Hide Tabs method
    public static void hideTabs(){
        popupTabs.setVisibility(ViewGroup.GONE);
    }

}

Теперь вы можете вызывать этот метод статически из любого места в вашем коде, как это

// hide tab from any activity
TabsView.showTabs();

// hide tab from any activity
TabsView.hideTabs()
5 голосов
/ 01 сентября 2013

Для Hide

mTabHost.getTabWidget().setVisibility(View.GONE);

Для Visible

mTabHost.getTabWidget().setVisibility(View.VISIBLE);
2 голосов
/ 21 октября 2010

Самый простой способ - создать вторую версию вашего файла layout.xml, не содержащего TabHost, и поместить его в папку ресурсов с именем layout-land (суффикс land - сокращение от landscape)«).Пожалуйста, смотрите эту статью SDK для получения дополнительной информации.

0 голосов
/ 21 октября 2010

Помимо того, что говорит Рувим, вам нужно было бы оживить переход между ними, чтобы изменение было немного более плавным.

...