@Wolfak

Как настроить Head в меню Navigation Drawer Activity?

Добрый день. Создаю новое приложение для андроид и использую стандартный шаблон приложения - Navigation Drawer Activity и столкнулся с проблемой, решение которое не нашел в интернете.

Использую замену фрагментов стандартным способом, при нажатии на item элемент пункта меню:
public boolean onNavigationItemSelected(MenuItem item) {

    // Создадим новый фрагмент
    Fragment fragment = null;
    Class fragmentClass = null;

    // Handle navigation view item clicks here.
    int id = item.getItemId();

    if (id == R.id.nav_camera) {
        // Handle the camera action
        fragmentClass = FirstFragment.class;

    } else if (id == R.id.nav_gallery) {
        fragmentClass = SecondFragment.class;
    } else if (id == R.id.nav_slideshow) {

    } else if (id == R.id.nav_manage) {

    } else if (id == R.id.nav_share) {

    } else if (id == R.id.nav_send) {

    }

    try {
        fragment = (Fragment) fragmentClass.newInstance();
    } catch (Exception e) {
        e.printStackTrace();
    }

    // Вставляем фрагмент, заменяя текущий фрагмент
    FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();
    // Выделяем выбранный пункт меню в шторке
    item.setChecked(true);
    // Выводим выбранный пункт в заголовке
    setTitle(item.getTitle());

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

Как описано здесь.

Но каким способом можно сделать замену фрагмента нажав не на пункт меню, а например на изображение из nav_header_main.xml ? Хочу реализовать переход в профиль пользователя наподобие приложения вк, авито или же алиэкспресс (нажал на аватарку вверху меню или на логин нужно перейти в профиль), но разобраться как заменить фрагмент нажав на разметку из этого файла так и не смог. Пример кода из этого файла:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout        
android:layout_width="match_parent"
android:id="@+id/headerView"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/side_nav_bar"
android:gravity="bottom"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="@dimen/nav_header_vertical_spacing"
    android:src="@android:drawable/sym_def_app_icon" />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="@dimen/nav_header_vertical_spacing"
    android:text="Android Studio"
    android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="android.studio@android.com" />

</LinearLayout>


Надеюсь на вашу помощь! Огромное спасибо, заранее!)
  • Вопрос задан
  • 1098 просмотров
Решения вопроса 1
@Wolfak Автор вопроса
Решил проблему такими способами:

https://github.com/mikepenz/MaterialDrawer
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы