Как изменить заголовок и значок панели действий android
Я пытаюсь сделать некоторые вещи на панели действий в Android.
Я уже добавил новые элементы в правой части панели действий.
Как я могу изменить левую сторону панели действий? Я хочу изменить значок и текст, и я хочу добавить "кнопку Назад" в панели действий для других экранов

15 ответов:
это очень просто сделать
если вы хотите изменить его в коде, позвоните:
setTitle("My new title"); getActionBar().setIcon(R.drawable.my_icon);и установите значения на все, что угодно.
или в xml-файле манифеста Android:
<activity android:name=".MyActivity" android:icon="@drawable/my_icon" android:label="My new title" />включить кнопку "Назад" В использовать приложение:
getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true);код должен быть помещен в ваш
onCreateчтобы изменение метки/значка было прозрачным для пользователя, но на самом деле его можно вызвать в любом месте во время действия жизненный цикл.
чтобы сделать один значок пригодным для всех ваших панелей действий, вы можете сделать это в своем Манифесте Android.
<application android:logo="@drawable/Image"> ... </application>
Если вы хотите изменить заголовок панели действий, просто дайте следующий код строки 1 в onCreate () вашего действия
getActionBar().setTitle("Test");
вам просто нужно добавить эти 3 строки кода. Замените значок на свой собственный значок. Если вы хотите создать значки, используйте этой
getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow); getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true);
вы можете изменить значок в вашем, добавив любой значок, который вы хотите, чтобы ваши соответствующие drawable папки, а затем изменить эту строку в вашем AndroidManifest.xml-файл:
android:icon="@drawable/ic_launcher"чтобы соответствовать любому имени вашего значка там. Или поместите свой значок в качестве ic_launcher, если это один и тот же значок. Что касается того, что он говорит, добавьте или измените любые строки, соответствующие этому в ваших res/values/strings.XML-файл. Затем, еще раз в ваш AndroidManifest.xml-файл, измените это линия:
android:label="@string/app_name"к любой строке у вас есть в их. Вы должны будете сделать это для приложения в целом, и в зависимости от того, какие действия вы хотите, но линии одинаковы.
надеюсь, что это помогает.
в материале 5.0 руководящими принципами дизайна Android препятствовать использованию значок в верхней панели
чтобы включить его, добавьте следующий код
getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true);кредит идет к автору этого статьи
для этого вы можете сделать это двумя способами: XML или Java. Смотрите здесь: как изменить текст на панели действий
Так:
XML:
<activity android:name=".Hello_World" android:label="This is the Hello World Application"> </activity>Java:
public class TitleBar extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); if ( customTitleSupported ) { getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); } final TextView myTitleText = (TextView) findViewById(R.id.myTitle); if ( myTitleText != null ) { myTitleText.setText("NEW TITLE"); // user can also set color using "Color" and then "Color value constant" // myTitleText.setBackgroundColor(Color.GREEN); } } }
для set:
getActionBar().setTitle("Title");для set Icon:
getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);
ActionBar actionBar = getSupportActionBar(); actionBar.setTitle(getString(R.string.titolo)); actionBar.setIcon(R.mipmap.ic_launcher); actionBar.setDisplayShowHomeEnabled(true);
я использовал следующий вызов внутри
onNavigationItemSelected:HomeActivity.this.setTitle(item.getTitle());
заголовок панели действий по умолчанию будет использовать метку текущего действия, но вы также можете установить его программно через
ActionBar.setTitle().чтобы реализовать функциональность кнопки" Назад "(точнее," вверх"), о которой вы говорите, прочитайте раздел" Использование значка приложения для навигации" руководство разработчика панели действий.
наконец, чтобы изменить значок, руководство покрывает это. Короче говоря, на панели действий будет отображаться изображение, поставляемое в
android:iconв вашем манифестеapplicationилиactivityэлемент, если он есть. Типичная практика заключается в создании значка приложения (во всех различных плотностях, которые вам понадобятся) с именемic_launcher.png, и поместите его вdrawable-*справочники.
я получил
non-static method setTitle(CharSequence) cannot be referenced from a static contextошибки, потому что я использовалsetTitle()в статическом классе PlaceholderFragment. Я решил это с помощьюgetActivity().getActionBar().setTitle("new title");
перейдите к Манифесту, в котором вы хотите изменить имя заголовка панели действий и написать android: label= "Title name"
эта работа для меня:
getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);
Comments