2015-11-24 3 views
0

Я создаю приложение для Android с пользовательской навигационной панелью.Android change "up" button image

Моя текущая навигационная панель выглядит следующим образом:

enter image description here

Я хотел бы создать навигационную панель, как это:

enter image description here

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

<style name="MyCustomTheme" parent="Theme.AppCompat.Light"> 
    <item name="android:homeAsUpIndicator">@drawable/custom_up_button</item> 
</style> 

И установить эту тему в AndroidManifest.xml:

<activity 
     android:name=".LoginActivity" 
     android:theme="@style/MyCustomTheme" 
     android:label="LOGIN" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.mycompany.HomeActivity" /> 

    </activity> 

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

+0

Почему вы изменили индивидуальный пользовательский интерфейс Android на iOS? – Mike

+0

Потому что клиент просит его ... Во всяком случае, должен быть способ сделать это ... –

+0

Но вы настраиваете эту тему для своего приложения в файле манифеста? – Mike

ответ

0

Изменить это программно с помощью:

Drawable upArrow = ContextCompat.getDrawable(getApplicationContext(), R.drawable.custom_up_button); 
getSupportActionBar().setHomeAsUpIndicator(upArrow); 
+0

Есть ли способ сделать это с XML? Также метод 'getDrawable' устарел ... –

+0

Я обновляю извинения за getDrawable Я написал это быстро @TomKortney –

1

Вы можете изменить его программно, как это:

-Добавить вашу вытяжку в папку -Создания действия, бар объекта и изменить его, как это:

ActionBar ab = getSupportActionBar(); ab.setDisplayHomeAsUpEnabled(true); ab.setHomeButtonEnabled(true); ab.setHomeAsUpIndicator(R.drawable.yourDrawable);

и он работает.