it-swarm.com.ru

Android - вкладки внизу экрана

Я около дня искал способ, чтобы в моем Android-приложении были вкладки внизу экрана.

На веб-сайте Android Developer в разделе «Стили и темы» у них, похоже, есть точный пример того, что я пытаюсь сделать, однако они не сочли нужным привести хороший пример этого:

enter image description here

Все советы/решения, которые я нахожу в Интернете, терпят неудачу. Мне всегда кажется, что я получаю следующий безобразный макет, где вкладки очень неуместны в верхней части экрана рядом с именем приложения :-(

enter image description here

У кого-нибудь есть подсказка, как этого добиться?

Заранее большое спасибо за любые советы!

6
Wesley

Я думаю, что эти примеры будут вам полезны: Пример панели вкладок Android AND THIS

11
NagarjunaReddy

Вот две ссылки на github, которые реализовали вкладку внизу.

enter image description here

https://github.com/AdilSoomro/Iphone-Tab-in-Android

enter image description here

https://github.com/AdilSoomro/Raised-Center-Tab-in-Android

4
Md. Monsur Hossain Tonmoy

Я использую этот макет для поиска вкладок в нижней части экрана:

?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="match_parent"
    Android:layout_height="match_parent">

    <LinearLayout
        Android:orientation="vertical"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent">

        <FrameLayout
            Android:id="@Android:id/tabcontent"
            Android:layout_width="0dp"
            Android:layout_height="0dp"
            Android:layout_weight="0"/>
        <FrameLayout
            Android:id="@+Android:id/realtabcontent"
            Android:background="@drawable/bg_main_app_gradient"
            Android:layout_width="match_parent"
            Android:layout_height="0dp"
            Android:layout_weight="1"/>
        <TabWidget
            Android:id="@Android:id/tabs"
            Android:background="#EAE7E1"
            Android:orientation="horizontal"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_weight="0"/>
    </LinearLayout>
</TabHost>

пример кода: https://stackoverflow.com/a/23150258/2765497

2
Flinbor

С введением Нижняя навигация.

https://material.google.com/components/bottom-navigation.html

Вы можете сделать это 

https://stackoverflow.com/a/36033640/6207502

1
Sudhir

Я хотел опубликовать обновление здесь. Нижняя панель навигации теперь Android Canon. Основные выводы из этого:

1) Используйте нижние навигационные панели только для 3-5 значков. В любом случае используйте вкладки . Более того, используйте прокручиваемые вкладки (страница вниз по той же ссылке).

2) Избегайте использования нижней навигационной панели и вкладок вместе, и убедитесь, что обязанности обоих четко разделены, если вы делаете.

3) Нижние навигационные панели должны использоваться для navigation, а не actions (используйте для них ActionBar)

1
sonictt1

Я думаю, что вы недостаточно ищете свою проблему, потому что вы используете неправильное ключевое слово. 

То, что вы показываете на первом изображении в нижней части приложения Gmail, это 4 меню и 5-е меню переполнения и верхняя верхняя панель действий 

Вы можете разместить меню внизу, используя простое свойство в манифесте; одна строка на основной деятельности, которая показывает панель действий 

Android:uiOptions="splitActionBarWhenNarrow"

Как это :

<activity
    Android:name="com.example.HomeActivity"
    Android:screenOrientation="portrait"
        Android:uiOptions="splitActionBarWhenNarrow"
    Android:theme="@style/Theme.Sherlock.Light" >
    <intent-filter>
        <action Android:name="Android.intent.action.MAIN" />

        <category Android:name="Android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
1
Nil

Google не рекомендует иметь вкладки внизу. 

Смотрите следующее официальное руководство по дизайну от Android,
И найдите раздел "Не использовать нижние панели вкладок"

http://developer.Android.com/design/patterns/pure-Android.html

1
revolutionary

Это очень просто ....

Для простой панели вкладок мы используем

<?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">
    <LinearLayout
        Android:orientation="vertical"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:padding="5dp">
        <TabWidget
            Android:id="@Android:id/tabs"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content" />
        <FrameLayout
            Android:id="@Android:id/tabcontent"
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:padding="5dp" />
    </LinearLayout>
</TabHost>

Но в панели Bottom Tab мы используем

**

<?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:layout_height="fill_parent"
        Android:layout_width="fill_parent">
        <TabWidget
            Android:id="@Android:id/tabs"
            Android:layout_alignParentBottom="true"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content" />
        <FrameLayout
            Android:id="@Android:id/tabcontent"
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:padding="5dp" />
    </RelativeLayout>
</TabHost>**

Главное это

 Android:layout_alignParentBottom=”true”;
0
Varinder Deol

Я сталкивался с вашим вопросом, пытаясь сделать то же самое, однако, в соответствии с рекомендациями по разработке Android, у вас никогда не должно быть панели вкладок внизу, так как это функция iOS ...

Стандарты разработки Android

0
Jeremie

Вы, кажется, немного запутали нижнюю панель. Это не панель вкладок. Нижняя панель предназначена для действий, а не для навигации по экранам. Например, на снимке экрана приложения Gmail, которое вы разместили выше, нижняя панель позволяет пользователю: создавать электронную почту, искать, отмечать, обновлять и выполнять другие действия. См. http://developer.Android.com/design/patterns/actionbar.html

Технически эти кнопки действительно перемещают пользователя на другие экраны, но панель вкладок обычно используется для «переключения» экранов. Например, просмотр контента по категориям.

Хм, но в последней версии приложения Gmail эти кнопки действий расположены сверху. Вздох...

0
Vasim