2014-01-08 3 views
0

Я использую Navigation Drawer в своем приложении. Я хочу изменить Tittle в навигационном ящике, и я хочу установить опцию Back button в верхней части заголовка.Как сделать заказ в навигационном ящике?

Three Thing i want to change in the header. 
1.Remove the ic_launcher image 
2.custom background theme 
3.Add a back button on the header 

Image Link

После текста Java Я хочу добавить кнопку назад, чтобы я мог обеспечить функциональность Назад в моем приложении.

Мой Полный код

public class MainActivity extends FragmentActivity { 
    private DrawerLayout mDrawerLayout; 
    private ListView mDrawerList; 
    private ActionBarDrawerToggle mDrawerToggle; 
    private String mTitle = ""; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mTitle = "Subjects"; 
     getActionBar().setTitle(mTitle); 


     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     mDrawerList = (ListView) findViewById(R.id.drawer_list); 
     mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, 
       R.drawable.white_bar, R.string.drawer_open, 
       R.string.drawer_close) { 

      /** Called when drawer is closed */ 
      public void onDrawerClosed(View view) { 
       getActionBar().setTitle(mTitle); 
       invalidateOptionsMenu(); 
      } 

      /** Called when a drawer is opened */ 
      public void onDrawerOpened(View drawerView) { 
       invalidateOptionsMenu(); 
      } 
     }; 

     // Setting DrawerToggle on DrawerLayout 
     mDrawerLayout.setDrawerListener(mDrawerToggle); 
     if (savedInstanceState == null) { 
      getUrl(0); 
     } 
     // Creating an ArrayAdapter to add items to the listview mDrawerList 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(
       getBaseContext(), R.layout.drawer_list_item, getResources() 
         .getStringArray(R.array.menus)); 

     // Setting the adapter on mDrawerList 
     mDrawerList.setAdapter(adapter); 

     // Enabling Home button 
     getActionBar().setHomeButtonEnabled(true); 

     // Enabling Up navigation 
     getActionBar().setDisplayHomeAsUpEnabled(true); 

     // Setting item click listener for the listview mDrawerList 
     mDrawerList.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       // Getting an array of rivers 
       String[] menuItems = getResources().getStringArray(
         R.array.menus); 

       // Currently selected river 
       mTitle = menuItems[position]; 
       getUrl(position); 

       // Closing the drawer 
       mDrawerLayout.closeDrawer(mDrawerList); 
      } 
     }); 
    } 

    @SuppressLint("Recycle") 
    protected void getUrl(int position) { 

     switch (position) { 
     case 0: 

     case 1: 

     case 2: 
     default: 
      // return ""; 
     } 
    } 

    @Override 
    protected void onPostCreate(Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 
     mDrawerToggle.syncState(); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if (mDrawerToggle.onOptionsItemSelected(item)) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

    /** 
    * Called whenever we call invalidateOptionsMenu() 
    * */ 
    @Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 
     // If the drawer is open, hide action items related to the content view 
     boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList); 

     menu.findItem(R.id.action_settings).setVisible(!drawerOpen); 
     return super.onPrepareOptionsMenu(menu); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 
+0

В вашем фрагменте можно задать заголовок панели действий – Raghunandan

+0

да я сделал это, но я хочу, чтобы добавить кнопку и на этом, а также изменить цвет текста Tittle и изменить образ ic_launcher – Developer

+0

I не знаю, о какой кнопке вы говорите. попробуйте этот 'getActionBar().setHomeButtonEnabled (истина); getActionBar(). SetDisplayHomeAsUpEnabled (true); ' – Raghunandan

ответ

1

В вашем фрагменте вы можете сделать

getActivity().getActionBar().setTitle("My Title"); 

Я думаю, вы говорите о <.

http://developer.android.com/training/implementing-navigation/ancestral.html

getActivity().getActionBar().setDisplayHomeAsUpEnabled(true); 

менять иконку

getActivity().getActionBar().setIcon(R.drawable.myappicon); 

Я не знаю, что вы имеете в виду, изменив цвет заголовка.

Проверить это для пользовательских Styling бар действие

https://developer.android.com/training/basics/actionbar/styling.html

Также проверьте этот

Remove application icon and title from Honeycomb action bar

getActivity().getActionBar.setIcon(android.R.color.transparent); 
+0

Я обновил свой вопрос. Какие три вещи мне нужно изменить – Developer

+0

@GauravPandey см. Мое обновление. не устанавливайте значок, если вы этого не хотите. Я действительно не понимаю, что здесь означает заголовок? – Raghunandan

+0

так, откуда я могу удалить это, я не получаю это, и изменение цвета заголовка означает, что там, где есть текст java, я хочу, чтобы этот фон синим цветом – Developer

1

В файле манифеста изменить код с

<application 
     android:allowBackup="true" 
     android:icon="@drawable/notes" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

и в styles.xml добавить код ниже

<style name="AppTheme" parent="AppBaseTheme"> 
     <item name="android:windowBackground">#FFE5E5E5</item> 
     <item name="android:actionBarStyle">@style/ActionBarStyle</item> 
    </style> 

    <style name="ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> 
     <item name="android:icon">@drawable/notes</item> 
     <item name="android:background">#FF666666</item> 
    </style> 
+0

Я не хочу этого @ drawable/notes не видно – Developer

+0

ic_launcher image Я хочу удалить из своего приложения – Developer

+0

удалите этот @ drawable/notes из стиля, и он будет работать – jyomin

0

Установка этой функции ActionBar WIIL помочь вам достичь того, чего вы хотите. Помните, что вам нужно создать собственный макет панели действий.

getSupportActionBar(). SetCustomView (R.layout.my_custom_actionbar_layout); getSupportActionBar(). SetDisplayShowTitleEnabled (false); getSupportActionBar(). SetDisplayShowCustomEnabled (true); getSupportActionBar(). SetDisplayUseLogoEnabled (false); getSupportActionBar(). SetDisplayHomeAsUpEnabled (false); getSupportActionBar(). SetDisplayShowHomeEnabled (false);

+0

это не работает, я пробовал это – Developer

Смежные вопросы