Intereting Posts
Как обнаружить, что навигационный ящик был открыт с помощью прокрутки (а не домашнего значка)? Камера не переопределяет старое изображение, если изменения ориентации Скрыть значок запуска приложения в строке заголовка, когда активность начинается с android Как программно изменить значок приложения на Android? Меню Android и преобразование панели действий Android: PopupWindow.showAtLocation () Как сделать верхний или нижний колонтитул ListView недоступным для просмотра Элементы, которые не отображаются в ActionBar с showAsAction = "always" XMPP с библиотекой Java Asmack, поддерживающей X-FACEBOOK-PLATFORM Как добавить кнопку в конце RecyclerView? Ошибка анализа XML: несвязанный префикс для mapbox Почему это утечка памяти Как нарисовать форму треугольника и добавить его в относительный или линейный макет андроида Перезапуск Android-приложения Phonegap вместо возобновления, хотя он не был убит операционной системой Поворот изображения по часовой стрелке с помощью LibGDX

Как центрировать иконки в панели инструментов в студии android

Я задал аналогичный вопрос здесь … В ответах я получил несколько уроков. Но этот вопрос различен. Потому что ни один из этих методов не работает в моем проекте.

Я хочу, чтобы все значки на панели инструментов

Я тестирую все доступные способы … но всегда значки плавают влево.

Я хочу, чтобы центрирующие значки (я предпочитаю, чтобы левый значок плавал слева и справа значок плавает вправо, а другие значки плавают в центре)

Activity.Main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" // I add vertical tools:context=".MainActivity"> <include android:id="@+id/tool_bar" layout="@layout/tool_bar" android:layout_height="wrap_content" android:layout_width="match_parent" // I add match_parent android:layout_gravity="center" /> // I add center </LinearLayout>. 

Также в tool_bar.xml

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar android:layout_height="wrap_content" android:layout_height="match_parent" android:background="@color/ColorPrimary" android:elevation="2dp" android:theme="@style/Base.ThemeOverlay.AppCompat.Dark" android:layout_gravity="center" // I add center xmlns:android="http://schemas.android.com/apk/res/android" /> 

В main_menu.xml

 <menu 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" tools:context=".MainActivity"> <item android:id="@+id/action_forward" android:title="forward" android:icon="@drawable/ic_action_arrow_forward" app:showAsAction="always" ></item> <item android:id="@+id/action_zoom_in" android:title="zoom in" android:icon="@drawable/ic_action_zoom_in" app:showAsAction="always" ></item> <item ... 

И для кода выше ( main_menu.xml ) в <item> Я пробовал все эти коды:

 android:layout_width="match_parent" android:layout_weight=".2" // 20% android:gravity="center" android:layout_centerVertical="true" android:layout_centerHorizontal="true" 

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

В чем моя ошибка? Для всех тестов я не вижу никаких изменений … Введите описание изображения здесь

Прежде чем я захотел pic2 (на картинке выше). Но теперь я просто хочу сосредоточиться!

Для моего всего теста я получаю только pic 1. без каких-либо изменений.

Solutions Collecting From Web of "Как центрировать иконки в панели инструментов в студии android"

Исправьте проблему, наслаждайтесь 🙂

 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:elevation="4dp" android:background="?attr/colorPrimary"> <!-- Code for your Left Button --> <ImageView android:id="@+id/yourId" android:src="@mipmap/yourLeftIcon" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="4dp" android:layout_marginBottom="4dp" android:layout_gravity="left" /> <!-- Here is the main code for your Middle Buttons --> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal" android:layout_gravity="center" android:gravity="center"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" android:id="@+id/button1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" android:id="@+id/button2"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" android:id="@+id/button3"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" android:id="@+id/button4" /> </LinearLayout> <!-- Code for your Right Button --> <ImageView android:id="@+id/yourId" android:src="@mipmap/yourRightIcon" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="4dp" android:layout_marginBottom="4dp" android:layout_gravity="right" /> </android.support.v7.widget.Toolbar> 

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

Это не точный ответ на ваш вопрос, но он скажет вам, как идти.

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@android:color/holo_red_light" android:elevation="2dp" android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" android:id="@+id/button1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" android:id="@+id/button2"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" android:id="@+id/button3"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" android:id="@+id/button4" /> </LinearLayout> </android.support.v7.widget.Toolbar> 

Затем в вашем основном фрагменте или где-либо еще вы можете получить доступ к чему-то подобному.

  Toolbar mToolbar = (Toolbar) root.findViewById(R.id.tool_bar); Button button1 = (Button) mToolbar.findViewById(R.id.button1); Button button2 = (Button) mToolbar.findViewById(R.id.button2); Button button3 = (Button) mToolbar.findViewById(R.id.button3); Button button4 = (Button) mToolbar.findViewById(R.id.button4); 

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

Вы должны попытаться применить любое выравнивание для макета родителей.

 <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <Button ...any attributes.../> ...any items... </LinerLayout> 

Я знаю, что это решение ужасно, но для меня это работает.

Во-первых, в LinearLayout вы можете разместить 3 панели инструментов вместо 1:

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <android.support.v7.widget.Toolbar android:id="@+id/bottomToolbarLeft" android:layout_width="0dp" android:layout_height="?attr/actionBarSize" android:layout_weight="1.0" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay"/> <android.support.v7.widget.Toolbar android:id="@+id/bottomToolbarCenter" android:layout_width="wrap_content" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay"/> <android.support.v7.widget.Toolbar android:id="@+id/bottomToolbarRight" android:layout_width="0dp" android:layout_height="?attr/actionBarSize" android:layout_weight="1.0" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay"/> </LinearLayout> 

Каждая панель инструментов должна иметь собственный ресурс меню.

Затем вы получите что-то вроде этого: Иконки центрированы, но значок слева не выровнен по левой границе

Наконец, чтобы выровнять левый значок, вы можете просто установить этот параметр для левой панели инструментов:

 android:layoutDirection="rtl" 

Результат: желаемый порядок

Вы можете сделать это программно следующим образом:

 mToolbar.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ImageView imageView = (ImageView)mToolbar.findViewById(R.id.logo); if( mToolbar == null ){ return; } int toolbarWidth = mToolbar.getWidth(); int imageWidth = imageView.getWidth(); imageView.setX((toolbarWidth-imageWidth)/2); } }); 

Настройте свой layout_toolbar.xml:

  <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" style="@style/Toolbar" android:layout_width="match_parent" android:layout_height="@dimen/toolbar_height" android:background="@drawable/toolbar_background" android:focusable="false" app:titleTextAppearance="@style/AppTheme.Toolbar.Title"> <ImageView android:id="@+id/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/toolbar_logo"/> </android.support.v7.widget.Toolbar> 

Возможно, вам помогут:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbarPath" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary"> <ImageView android:id="@+id/imgBack" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="left" android:layout_marginBottom="4dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="4dp" android:src="@drawable/ic_action_back" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center" android:gravity="center" android:orientation="horizontal"> <ImageView android:id="@+id/imgClear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="15dp" android:src="@drawable/ic_action_discard" /> <ImageView android:id="@+id/imgStop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="15dp" android:src="@drawable/ic_action_stop" /> <ImageView android:id="@+id/imgPath" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="15dp" android:src="@drawable/ic_action_merge" /> <ImageView android:id="@+id/imgToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_action_map" /> </LinearLayout> <ImageView android:id="@+id/imgForward" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="right" android:layout_marginBottom="4dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="4dp" android:src="@drawable/ic_action_forward" /> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/mapPath" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/appBar" /> </RelativeLayout> 

В вашем style.xml напишите:

 <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

Затем в manifest.xml :

 <application android:name="com.ir.zanis.app.AppController" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme.NoActionBar"> <===See here=== ....... ............. .............