FIXEDAndroid Custom Action Bar LinearLayout с равноудаленных кнопками
Я исправил эту проблему, просто удалив панель действий и с помощью панели инструментов в поддержку библиотеки вместо этого. Я добавил панель инструментов в файл XML моей активности. Более того, я удалил по умолчанию paddings моего корневого представления (RelativeLayout), которые были созданы в Studio Studio для создания активности и изначально не были уведомлены мной. Furhtermore, я использовал «match_parent» вместо «0dp» в качестве ширины кнопки изображения.
<RelativeLayout 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"
tools:context=".BluetoothConnectionManager">
<android.support.v7.widget.Toolbar android:id="@+id/tbMenu"
xmlns:application="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="@color/hafnertec"
android:layout_alignParentTop="true">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_marginRight="12dp"
android:orientation="horizontal">
<ImageButton android:id="@+id/miBluetoothConnection"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"
android:onClick="showDialogueCloseBluetoothConnection"/>
<ImageButton android:id="@+id/miHome"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"
android:onClick="switchToHomeFragment"/>
<ImageButton android:id="@+id/miGraphsBurnOffCurves"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"
android:onClick="switchToBurnOffGraphsFragment"/>
<ImageButton android:id="@+id/miConfigurationMode"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"/>
<ImageButton android:id="@+id/miExpertMode"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"/>
</LinearLayout>
</android.support.v7.widget.Toolbar>
...
</RelativeLayout>
ORIGINAL ВОПРОС
Я пишу Android приложение, которое делает использование панели пользовательского действия. Я хочу, чтобы эта панель действий отображала пять кнопок, которые равномерно распределены. Для решения этой задачи я использую следующий XML-файл (как значки все еще находятся в работе всех кнопки один и тот же значок.):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_gravity="fill_horizontal"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:orientation="horizontal">
<ImageButton android:id="@+id/miBluetoothConnection"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"
android:onClick="showDialogueCloseBluetoothConnection"/>
<ImageButton android:id="@+id/miHome"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"
android:onClick="switchToHomeFragment"/>
<ImageButton android:id="@+id/miGraphsBurnOffCurves"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"/>
<ImageButton android:id="@+id/miConfigurationMode"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"/>
<ImageButton android:id="@+id/miExpertMode"
android:src="@drawable/ic_action_bluetooth_searching"
android:background="@drawable/selector_menu_button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:scaleType="centerInside"/>
</LinearLayout>
Работу большим в конструкторе это не работает при тестировании его на реальное устройстве , При тестировании все кнопки сжимаются вместе, и между ними нет абсолютно никакого промежутка. Предварительный просмотр в дизайнере и скриншот, сделанный с помощью моего тестового устройства, можно увидеть ниже.
Action bar displayed by the designer
Action bar on my testing device
Я также попытался обертывание мою LinearLayout в RelativeLayout, а также с использованием TableLayout. Однако не все это работает. Используя RelativeLayout, пятая кнопка не такая большая, как другие.
Для добавления панели действий в моем приложении я использую следующий код:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
...
// add the custom action bar
this.abMainMenu = this.getSupportActionBar();
this.abMainMenu.setDisplayShowCustomEnabled(true);
LayoutInflater liAddActionBar = LayoutInflater.from(this);
this.customActionBar = liAddActionBar.inflate(ApplicationSettings.LAYOUT_REFERENCE_MAIN_MENU, null);
this.abMainMenu.setCustomView(this.customActionBar);
...
}
Я тестирование на Samsung Galaxy S I9000 с CyanogenMod 11 скриншоте декабря (Android 4.4.4).
Я ценю любую помощь!
Спасибо,
Lukas
Я попытался реализовать это решение в своем макете, но я получаю следующую проблему: «Caused by: java.lang.ClassNotFoundException: не нашел класс« android.support.v7.widget.Toolbar »по пути:/data/app/com.adapta-2.apk в dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:65) «... как я могу решить эту ситуацию? Спасибо – KryNaC
Мне кажется, что вы забыли включить библиотеку поддержки Android. Надеюсь, что [учебник Google] (https://developer.android.com/tools/support-library/setup.html) может дать вам дополнительные инструкции, включая библиотеку. Если нет, пожалуйста, дайте мне знать. – Lukas