it-swarm.com.ru

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

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

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

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

Android Action Bar

206
Allan Ramírez

Это очень просто сделать

Если вы хотите изменить его в коде, позвоните:

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

486
dymmeh

Чтобы сделать один значок доступным для всех ваших панелей действий, вы можете сделать это в своем манифесте Android.

<application
    Android:logo="@drawable/Image">

    ...

</application>
16
Akshat Agarwal

Вам просто нужно добавить эти 3 строки кода. Замените значок на свой собственный значок. Если вы хотите создавать иконки, используйте это

getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
9
Sagar Devanga

Если вы хотите изменить заголовок панели действий, просто введите следующий 1-строчный код в onCreate () вашего Activity 

getActionBar().setTitle("Test");
9
Jabbir Basha

В Android 5.0 рекомендации по дизайну материалов не поощряют использование иконок в actionBar

чтобы включить его, добавьте следующий код

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);

автору принадлежит автор этой статьи

7
Azzy

Вы можете изменить значок в вашем приложении, добавив любой нужный значок в соответствующие папки для рисования, а затем изменив эту строку в файле AndroidManifest.xml:

Android:icon="@drawable/ic_launcher"

чтобы соответствовать любому имени вашей иконы там. Или поместите свою иконку как ic_launcher, если они - та же самая иконка. Что касается того, что он говорит, добавьте или измените все строки, совпадающие с таковыми в вашем файле res/values ​​/ strings.xml. Затем, еще раз в вашем файле AndroidManifest.xml, измените эту строку:

Android:label="@string/app_name"

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

Надеюсь это поможет.

6
RobStemen

Для этого вы можете сделать это двумя способами: XML или Java. Смотрите здесь: Как изменить текст на панели действий

Так:

XML: 

<activity Android:name=".Hello_World"
              Android:label="This is the Hello World Application">
</activity>

Джава:

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);
       }
 }
}
5
Miloš

Для набора Заголовок

getActionBar().setTitle("Title");

Для набора иконок

getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);
3
Bhaumik Sathvara
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);
3
Alessandro Caliaro

Я использовал следующий вызов внутри onNavigationItemSelected:

HomeActivity.this.setTitle(item.getTitle());
2
AmandaHLA

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

setTitle("NewName");
1
Chandrahasa Rai

Перейдите к манифесту, в каком конкретном действии вы хотите изменить заголовок панели действий, введите имя и напишите Android: label = "Название названия" 

0
Abhishek Rajpurohit

Эта работа для меня:

getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);
0
Ram Chhabra

В заголовке панели действий по умолчанию будет использоваться метка текущей активности, но вы также можете установить ее программно с помощью ActionBar.setTitle().

Чтобы реализовать функциональность кнопки «Назад» (точнее, «Вверх»), о которой вы говорите, прочитайте раздел «Использование значка приложения для навигации» в руководстве разработчика Action Bar .

Наконец, чтобы изменить значок, руководство охватывает это также. Вкратце, на панели действий будет отображаться изображение, предоставленное в Android:icon, в элементе application или activity вашего манифеста, если таковой имеется. Типичная практика заключается в создании значка приложения (со всеми необходимыми значениями плотности) с именем ic_launcher.png и его размещении в каталогах drawable-*.

0
CloudyMusic

Перейдите в AndroidManifest.xml file. Найдите тег <application> Там вы можете увидеть атрибут

Android:label="@string/app_name"

Теперь перейдите в res> значения> strings.xml

Правка

<string name="app_name">MainActivity</string> 

в

<string name="app_name">Your Desired Name</string>

Пример

AndroidManifest.xml

<application
        Android:allowBackup="true"
        Android:icon="@mipmap/ic_launcher"
        Android:label="@string/app_name"
        Android:roundIcon="@mipmap/ic_launcher_round"
        Android:supportsRtl="true"
        Android:theme="@style/AppTheme">
        <activity
            Android:name=".MainActivity"
            >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity Android:name=".SubmitForm">

        </activity>
    </application>

strings.xml

<resources>
    <string name="app_name">Your Desired Name</string>
    <string name="action_settings">Settings</string>
</resources>
0
Kartik ganiga

Я получил ошибку non-static method setTitle(CharSequence) cannot be referenced from a static context, потому что я использовал setTitle() в статическом классе PlaceholderFragment. Я решил это с помощью getActivity().getActionBar().setTitle("new title");

0
user4757345