Intereting Posts
Как я могу получить код ответа из VolleyError? Ошибка компиляции Android; Плагин Java был применен, не совместим с Android Android, Gradle. Как создать приложение и запустить тесты из тестового приложения Java.text.ParseException: Непревзойденная дата: «2014-06-04» ​​(со смещением 5) Прикосновение подписи к холсту создает проблему в телефонной зазоре Макет, как и карты в Android Перетаскивание в «ListView» Использует Scala на Android? Много накладных расходов? Проблемы? Что такое использование BaseColumns в Android? Скрытие клавиатуры Android для EditText Чтобы активность Android всегда использовалась в режиме ландшафта Есть ли способ автоматического обновления приложения на Android? Доступ к электронной почте пользователя с помощью нового Android Android SDK Как остановить / отменить андроид CountDownTimer Как сделать кнопочный щелчок и просмотреть элемент списка нажмите в настройке просмотра списка в android

Стиль пользовательского макета Android ActionBar

Я только начинаю разработку Android от IOS и снова сталкиваюсь с проблемой. И после 1 дня попытки я решил, что я попрошу людей переполнения стека.

Итак, моя проблема:

У меня есть приложение и в панели действий (по умолчанию нет sherlock) я хочу 1 логотип и 2 строки текста. И через Интернет я устанавливаю setCustomView для панели действий. И пользовательский xml загружен, но я не могу правильно подобрать макет.

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

private void setupActionBar() { ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayUseLogoEnabled(false); actionBar.setDisplayHomeAsUpEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setDisplayShowHomeEnabled(false); LayoutParams lp1 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); View customNav = LayoutInflater.from(this).inflate(R.layout.actionbar, null); // layout which contains your button. actionBar.setCustomView(customNav, lp1); } 

Чем xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_horizontal" android:orientation="horizontal" android:background="@color/Blue"> <TextView android:id="@+id/text_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/title_menu" android:textColor="@color/White" android:paddingLeft="5dp" android:layout_gravity="left"/> <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/Icon" android:layout_gravity="center"/> <TextView android:id="@+id/text_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/title_help" android:layout_gravity="right" android:textColor="@color/White" android:paddingRight="5dp"/> </LinearLayout> 

Но результат – это то, чего я не ищу:

Проблема в изображении

Так что я забываю / делаю неправильно / или должен ли я это делать?

Solutions Collecting From Web of "Стиль пользовательского макета Android ActionBar"

Попробуйте изменить корневую компоновку на относительную компоновку

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_horizontal" android:orientation="horizontal"> <TextView android:text="left text" android:layout_toLeftOf="@+id/icon" android:layout_alignParentLeft="true" android:id="@+id/text_left" android:gravity="left" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="5dp"/> <ImageView android:layout_centerHorizontal="true" android:id="@+id/icon" android:layout_width="10dp" android:layout_height="wrap_content" android:src="@drawable/bg_sunrise" android:layout_gravity="center"/> <TextView android:text="Right txt" android:layout_toRightOf="@+id/icon" android:id="@+id/text_right" android:layout_width="match_parent" android:gravity="right" android:layout_height="wrap_content" android:layout_gravity="right" android:paddingRight="5dp"/> </RelativeLayout> 

Вы не получаете результат, потому что:

Введите описание изображения здесь

U необходимо:

  1. Если вы используете тему AppCompat

Введите описание изображения здесь

  1. Добавить в свой макет деятельности

Введите описание изображения здесь

  1. В коде, например. В onCreate () установите панель инструментов, чтобы заменить панель действий.

Введите описание изображения здесь

Вы также можете использовать LinearLayout в качестве корня и добавить android: weightSum и указать layout_weight на трех дочерних представлениях.

Что такое android: weightSum в android и как он работает?