Как изменить заголовок и значок панели действий android



Я пытаюсь сделать некоторые вещи на панели действий в Android.



Я уже добавил новые элементы в правой части панели действий.



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



Android Action Bar

587   15  

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());

добавьте приведенный ниже код внутри функции onCreate в вашей деятельности.

setTitle("NewName");

заголовок панели действий по умолчанию будет использовать метку текущего действия, но вы также можете установить его программно через 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

    Ничего не найдено.