Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
#1

Посоветуйте как реализовать разметку - Android

06.07.2016, 15:37. Просмотров 357. Ответов 21
Метки нет (Все метки)

Пример приложения ВК Посоветуйте как реализовать разметку


Есть может библиотеки готовые? В идеале нужно что то типа https://github.com/mikepenz/MaterialDrawer но не в боковом меню, а в лаяуте фрагмента.. Есть такое? Или самому писать? _
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2066 / 1808 / 562
Регистрация: 12.05.2014
Сообщений: 6,437
Завершенные тесты: 1
06.07.2016, 16:04     Посоветуйте как реализовать разметку #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
почему не сделать так?
Посоветуйте как реализовать разметку
1. разметка активити с NavigationView внутри CardView
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fefefe"
    android:orientation="vertical">
 
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:title="@string/app_name"
        app:titleTextColor="#fff" />
 
    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp">
 
        <android.support.design.widget.NavigationView
            android:id="@+id/navView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:menu="@menu/popup_menu1" />
 
    </android.support.v7.widget.CardView>
 
</LinearLayout>

2. просто любое меню с иконками
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
 
    <group android:id="@+id/group1">
        <item
            android:title="Title"
            app:showAsAction="always" />
    </group>
 
    <item
        android:icon="@drawable/ic_tab_books"
        android:title="Item 1"
        app:showAsAction="always" />
    <item
        android:icon="@drawable/ic_tab_movies"
        android:title="Item 2"
        app:showAsAction="always" />
    <item
        android:icon="@drawable/bookmarks"
        android:title="Item 3"
        app:showAsAction="always" />
    <item
        android:icon="@drawable/ic_folder"
        android:title="Item 4"
        app:showAsAction="always" />
    <item
        android:icon="@drawable/ic_hamburger"
        android:title="Item 5"
        app:showAsAction="always" />
 
</menu>

3. PROFIT

Title задается как group в меню
плюсы - не нужно вообще ничего писать, кроме одной строчки - все идет из коробки - стили, отступы, цвета, слушатель тот же что и на менюшке
если надо что-то не стандартное то делается свое View и назначается в xml разметке ресурса меню как actionView
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
06.07.2016, 16:12  [ТС]     Посоветуйте как реализовать разметку #3
Паблито, На первый взгляд это как раз что и надо Спасибо! Сейчас попробую скопировать )

Добавлено через 4 минуты
Цитата Сообщение от Паблито Посмотреть сообщение
почему не сделать так?
Не знал
Паблито
2066 / 1808 / 562
Регистрация: 12.05.2014
Сообщений: 6,437
Завершенные тесты: 1
06.07.2016, 16:14     Посоветуйте как реализовать разметку #4
вот еще придумал, вместо group в меню можно использовать header в NavigationView
карточка из разметки активити
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp">
 
        <android.support.design.widget.NavigationView
            android:id="@+id/navView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:headerLayout="@layout/header"
            app:menu="@menu/popup_menu1" />
 
    </android.support.v7.widget.CardView>
менюшка старая, но удалить group из нее

и файл header.xml
XML
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
    android:textColor="@color/colorPrimary"
    android:paddingTop="16dp"
    android:paddingLeft="16dp"
    android:text="Ololo title" />
PROFIT
Посоветуйте как реализовать разметку
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
21.02.2017, 10:09  [ТС]     Посоветуйте как реализовать разметку #5
А что это такое? Все как описано делаю..
Миниатюры
Посоветуйте как реализовать разметку  
ExFau$t
216 / 199 / 40
Регистрация: 08.05.2012
Сообщений: 1,123
21.02.2017, 10:17     Посоветуйте как реализовать разметку #6
По всей видимости это хедер и есть.
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
21.02.2017, 10:28  [ТС]     Посоветуйте как реализовать разметку #7
ExFau$t, на скриншоте без хедера, я убрал его. С ним и без него все ровно этот бордер
ExFau$t
216 / 199 / 40
Регистрация: 08.05.2012
Сообщений: 1,123
21.02.2017, 10:44     Посоветуйте как реализовать разметку #8
Давай разметку.
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
21.02.2017, 11:30  [ТС]     Посоветуйте как реализовать разметку #9
Фрагмент:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp">
 
        <android.support.design.widget.NavigationView
            android:id="@+id/navView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:headerLayout="@layout/menu_header"
            app:menu="@menu/settings_menu" />
 
    </android.support.v7.widget.CardView>
 
</LinearLayout>



Все это загружается в контейнер который находится в content_main

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity">
 
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">
 
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
 
    </android.support.design.widget.AppBarLayout>
 
    <include layout="@layout/content_main" />
 
    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_dialog_email" />
 
</android.support.design.widget.CoordinatorLayout>

content_main

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/content_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/app_bar_main">
 
 
 
    <FrameLayout
        android:id="@+id/frgmCont"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </FrameLayout>
 
</RelativeLayout>
ExFau$t
216 / 199 / 40
Регистрация: 08.05.2012
Сообщений: 1,123
21.02.2017, 11:44     Посоветуйте как реализовать разметку #10
Вот это похоже на хедер:
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
app:headerLayout="@layout/menu_header"
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
21.02.2017, 11:51  [ТС]     Посоветуйте как реализовать разметку #11
ExFau$t, Это я сейчас добавил при отправке сюда (толку нет что с ним что без - так-же)
ExFau$t
216 / 199 / 40
Регистрация: 08.05.2012
Сообщений: 1,123
21.02.2017, 11:57     Посоветуйте как реализовать разметку #12
Показывай @menu/settings_menu
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
21.02.2017, 12:03  [ТС]     Посоветуйте как реализовать разметку #13
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
 
    <item
        android:icon="@drawable/common_full_open_on_phone"
        android:title="Item 1"
        app:showAsAction="never"
        android:titleCondensed="1 мин"/>
    <item
        android:icon="@drawable/common_full_open_on_phone"
        android:title="Item 2"
        app:showAsAction="always" />
    <item
        android:icon="@drawable/common_full_open_on_phone"
        android:title="Item 3"
        app:showAsAction="always" />
    <item
        android:icon="@drawable/common_full_open_on_phone"
        android:title="Item 4"
        app:showAsAction="always" />
    <item
        android:icon="@drawable/common_full_open_on_phone"
        android:title="Item 5"
        app:showAsAction="always" />
 
</menu>
ExFau$t
216 / 199 / 40
Регистрация: 08.05.2012
Сообщений: 1,123
21.02.2017, 12:17     Посоветуйте как реализовать разметку #14
Сделай item1, app:showAsAction="always", у тебя же нету всплывающего меню с заголовком, как я понимаю.
Паблито
2066 / 1808 / 562
Регистрация: 12.05.2014
Сообщений: 6,437
Завершенные тесты: 1
21.02.2017, 12:22     Посоветуйте как реализовать разметку #15
я может невнимательно прочитал код, но в примере вверху в header_layout указана просто TextView, а в твоем коде что? правильно - menu_header
кэп подсказывает что его и надо показывать/смотреть
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
21.02.2017, 12:40  [ТС]     Посоветуйте как реализовать разметку #16
menu_header

XML
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
    android:textColor="@color/colorPrimary"
    android:paddingTop="16dp"
    android:paddingLeft="16dp"
    android:text="Ololo title" />
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
21.02.2017, 12:45  [ТС]     Посоветуйте как реализовать разметку #17
Вот так отображается
Миниатюры
Посоветуйте как реализовать разметку  
Паблито
2066 / 1808 / 562
Регистрация: 12.05.2014
Сообщений: 6,437
Завершенные тесты: 1
21.02.2017, 13:02     Посоветуйте как реализовать разметку #18
это какое-то дурацкое изменение в последних версиях
вылечил так, в разметку NavigationView добавил атрибут
XML
1
app:insetForeground="@null"
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
21.02.2017, 13:05  [ТС]     Посоветуйте как реализовать разметку #19
Паблито, спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2017, 11:09     Посоветуйте как реализовать разметку
Еще ссылки по теме:

Android AlertDialog вылезает за разметку
Как реализовать проект Android
Подскажите как сделать разметку для разных экранов Android
Создание объекта через xml разметку. NullPointerExeption Android
Android Посоветуйте как упростить код

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,636
Записей в блоге: 3
21.03.2017, 11:09  [ТС]     Посоветуйте как реализовать разметку #20
Почему у меня не срабатывает вот такой код: android:actionViewClass="android.widget.RadioButton" в NavigationView

XML
1
2
3
4
5
6
<item
        android:icon="@drawable/ic_action_home_96"
        android:title="Адрес обслуживания"
        app:showAsAction="always"
        android:actionViewClass="android.widget.RadioButton"
        android:id="@+id/sort_home_address"/>
Yandex
Объявления
21.03.2017, 11:09     Посоветуйте как реализовать разметку
Ответ Создать тему
Опции темы

Текущее время: 16:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru