Подтвердить что ты не робот

Android-навигатор для Android, как приложение Gmail

Мы делаем приложение для Android, и есть что-то, что мы хотим добавить. Какой эффект имеет приложение Gmail.

Вы можете выбрать, какую учетную запись вы хотите просмотреть (и остальная часть приложения будет вести себя соответственно).

Пример

EDIT:

Теперь у меня уже есть (рабочая) панель навигации, но то, что я хочу, это круглые значки в заголовке. Я хочу, чтобы кто-то мог выбрать пользователя, которого они просматривают.

4b9b3361

Ответ 1

Эффект, который вы хотите, может быть достигнут с помощью NavigationView из com.android.support:design поддержки lib.

Вы можете найти полный учебник по этому здесь. И вы можете загрузить полный исходный код из этого учебника здесь.

И вот еще один хороший учебник, который вы могли бы выполнить.

Короче говоря, этот вид разделен между двумя основными частями, заголовком и частью меню, и каждый из них вы должны определить в XML.

Как из этого учебника:

Просмотр заголовка

Этот вид в основном является верхней частью навигации который содержит изображение профиля, имя и адрес электронной почты и т.д. Вам нужно чтобы определить это в отдельном файле макета, мы рассмотрим это в всего лишь мгновение.

Меню

Это меню, которое вы хотите показать под заголовком, мы определяем меню в папке меню, так же, как вы определяете меню для вашего переполнения меню. Таким образом, в основном NavigationView представляет собой контейнер для заголовка и меню, которое вы собираетесь использовать в своем выдвижном ящике. А сейчас что вы понимаете NavigationView, мы можем начать строить наши Ящик навигации.

С учетом этого создайте свой заголовок так же, как и любой другой макет. И меню определено несколько как меню панели инструментов /ActionBar. например:.

navigation_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group
        android:checkableBehavior="single">

        <item
            android:id="@+id/drawer_home"
            android:checked="true"
            android:icon="@drawable/icon_home"
            android:title="@string/title_home"/>

        <item
            android:id="@+id/drawer_content"
            android:icon="@drawable/icon_content"
            android:title="@string/title_content"/>

        <item
            android:id="@+id/drawer_about"
            android:icon="@drawable/icon_about"
            android:title="@string/title_about"/>

        <item
            android:id="@+id/drawer_exit"
            android:icon="@drawable/icon_exit"
            android:title="@string/title_exit"/>

        </group>
</menu>

Затем на вашем Activity вам нужно будет сделать макет, подобный тому, который был найден в учебнике, используя DrawerLayout вместе с NavigationView.

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:orientation="vertical"
        >
        <include
            android:id="@+id/toolbar"
            layout="@layout/tool_bar"/>
        <FrameLayout
            android:id="@+id/frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </FrameLayout>

    </LinearLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:layout_gravity="start"
        app:headerLayout="@layout/header"
        app:menu="@menu/navigation_menu"/>
</android.support.v4.widget.DrawerLayout>

Вам также нужно создать несколько Fragments для каждого экрана, который вы хотите отобразить с помощью этого NavigationView. После того, как вы это сделали, на Activity вы можете обрабатывать события выбора, реализуя NavigationView.OnNavigationItemSelectedListener, например:

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { 
    // Your Activity
        @Override
    public boolean onNavigationItemSelected(MenuItem menuItem) {
        Fragment fragment = null;

        switch(menuItem.getItemId()) {
            case R.id.drawer_home:
                fragment = new YourFragment();
                break;
            case R.id.drawer_content:
                fragment = new AnotherFragment();
                break;
            case R.id.drawer_about:
                fragment = new AboutFragment();
                break;
            case R.id.drawer_exit:
                // TODO - Prompt to exit.
                finish();
                break;
        }

        if (fragment == null) {
            fragment = new YourFragment();
        }

        drawerLayout.closeDrawers();

        FragmentManager fragmentManager = getSupportFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.container, fragment)
                    .commit();

        return true;
    }
}

Что касается вашего редактирования, значки могут быть представлены ImageView. И чтобы перемещаться между несколькими профилями, это зависит от того, как вы реализовали эту логику в своем приложении, но как "общий" ответ, вы можете переключать эти профили, используя что-то вроде Spinner.

Эти учебные пособия помогут вам в этом:

Как только вы установите этот заголовок , отредактируйте выбор элемента и соответствующим образом измените профиль пользователя. (Эта последняя часть полностью зависит от того, как вы реализовали профили пользователей в своем приложении). Но как раз в начале, вы можете проверить сайт для обучения Android, более конкретно эту часть.

Ответ 2

Вам следует использовать NavigationView

Он обеспечивает основу для легкой реализации материальной навигации ящик с помощью надувных навигационных элементов через меню ресурс. Befor Navigation View, у нас есть трудный способ сделать материал навигационный ящик с использованием listview или linearlayout с пользовательским адаптером, но теперь нам просто нужно добавить Navigation View в DrawerLayout, все остальное будет обработано навигационным представлением.

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/drawer_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:fitsSystemWindows="true">

     <!-- Your contents -->

     <android.support.design.widget.NavigationView
         android:id="@+id/navigation"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:layout_gravity="start"
         app:menu="@menu/my_navigation_items" />
 </android.support.v4.widget.DrawerLayout>

Для этого требования Вы можете проверить образец

Надеюсь, что это поможет.

Ответ 3

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