Мне удалось сосредоточить название ABS, используя пользовательский вид, но кнопка дома исчезла. Как это можно решить? Единственный способ сделать это, чтобы поместить эту домашнюю кнопку в пользовательский вид? (Чтобы быть ясным: кнопка дома должна быть слева не в центре)
Пользовательский вид:
<?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:gravity="center" android:background="@android:color/transparent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello"/> </LinearLayout>
Код мероприятия:
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); getSupportActionBar().setCustomView(R.layout.widget_actionbar_title); getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); View customView = LayoutInflater.from(this).inflate( R.layout.app_icon, null); ActionBar.LayoutParams params = new ActionBar.LayoutParams( ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER); getSupportActionBar().setCustomView(customView, params); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setIcon(getResources().getDrawable(R.drawable.back_button));
Добавь это:
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
Решение очень простое)
Изменение макета
android:layout_width="match_parent"
на этом:
android:layout_width="wrap_content"
Это поможет, потому что ваш первоначальный макет занимает все видимое место, и нет места для «дома»,
Мне пришлось добавить этот код, чтобы он работал:
getSupportActionBar().setDisplayShowHomeEnabled(true);