2016-06-02 2 views
1

ツールバーがあり、ナビゲーションドロワー付きのサイドメニュー画面に表示したいが、取得できない。コード&を参照してください私は同じことをする必要がありますか? ツールバーにタイトルを設定できません&メニューアイコンが通話先に表示されません。私はそれに固執しています。私はツールバーを作っており、ナビゲーションドロワー付きのサイドメニュー画面に表示したいが、手に入れることができない

サイドメニュー画面のオプションをクリックした後は、MyOrders、mywallet、Reatecard、Offers、Help、Notifiのようになります。しかし、それは私の命令を汚すことによって来ている。すべての

import android.app.Activity; 
import android.app.FragmentManager; 
import android.content.res.Configuration; 
import android.content.res.TypedArray; 
import android.os.Bundle; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.widget.Toolbar; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ListView; 

import java.util.ArrayList; 

import handyman.com.handyman.adapter.NavDrawerListAdapter; 
import handyman.com.handyman.model.NavDrawerItem; 

public class Profile extends Activity { 
    private DrawerLayout mDrawerLayout; 
    private ListView mDrawerList; 
    private Toolbar toolbar; 
    private ActionBarDrawerToggle mDrawerToggle; 

    // nav drawer title 
    private CharSequence mDrawerTitle; 

    // used to store app title 
    private CharSequence mTitle; 

    // slide menu items 
    private String[] navMenuTitles; 
    private TypedArray navMenuIcons; 

    private ArrayList<NavDrawerItem> navDrawerItems; 
    private NavDrawerListAdapter adapter; 
    private Toolbar supportActionBar; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.profile); 
     toolbar = (Toolbar) findViewById(R.id.tool_bar); 
     setSupportActionBar(toolbar); // Attaching the layout to the toolbar object 
     /*ActionBar setSupportActionBar; 
     setSupportActionBar.setDisplayHomeAsUpEnabled(true); 
     getActionBar().setHomeButtonEnabled(true);*/ 
     /* getActionBar().setDisplayHomeAsUpEnabled(true); 
     getActionBar().setHomeButtonEnabled(true);*/ 
     mTitle = mDrawerTitle = getTitle(); 

     // load slide menu items 
     navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items); 

     // nav drawer icons from resources 
     navMenuIcons = getResources().obtainTypedArray(R.array.nav_drawer_icons); 

     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 
     mDrawerList = (ListView) findViewById(R.id.list_slidermenu); 

     navDrawerItems = new ArrayList<NavDrawerItem>(); 

     // adding nav drawer items to array 
     // Home 
     navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1))); 
     // Find People 
     navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1))); 
     // Photos 
     navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1))); 
     // Communities, Will add a counter here 
     navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1))); 
     // Pages 
     navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1))); 
     // What's hot, We will add a counter here 
     navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1))); 


     // Recycle the typed array 
     navMenuIcons.recycle(); 

     mDrawerList.setOnItemClickListener(new SlideMenuClickListener()); 

     // setting the nav drawer list adapter 
     adapter = new NavDrawerListAdapter(getApplicationContext(),navDrawerItems); 
     mDrawerList.setAdapter(adapter); 


     mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,R.drawable.manu, R.string.app_name, R.string.app_name) 
     { 
      public void onDrawerClosed(View view) { 
       supportActionBar.setTitle(mTitle); 
       // calling onPrepareOptionsMenu() to show action bar icons 
       invalidateOptionsMenu(); 
      } 

      public void onDrawerOpened(View drawerView) { 
       supportActionBar.setTitle(mDrawerTitle); 
       // calling onPrepareOptionsMenu() to hide action bar icons 
       invalidateOptionsMenu(); 
      } 
     }; 
     mDrawerLayout.setDrawerListener(mDrawerToggle); 

     if (savedInstanceState == null) { 
      // on first time display view for first nav item 
      displayView(0); 
     } 



    } 

    public void setSupportActionBar(Toolbar supportActionBar) { 
     this.supportActionBar = supportActionBar; 
    } 


    private class SlideMenuClickListener implements 
      ListView.OnItemClickListener { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, 
           long id) { 
      // display view for selected nav drawer item 
      displayView(position); 
     } 
    } 

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

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // toggle nav drawer on selecting action bar app icon/title 
     if (mDrawerToggle.onOptionsItemSelected(item)) { 
      return true; 
     } 
     // Handle action bar actions click 
     switch (item.getItemId()) { 
      case R.id.action_settings: 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 


    @Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 
     // if nav drawer is opened, hide the action items 
     boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList); 
     menu.findItem(R.id.action_settings).setVisible(!drawerOpen); 
     return super.onPrepareOptionsMenu(menu); 
    } 

    private void displayView(int position) { 
     // update the main content by replacing fragments 
     android.app.Fragment fragment = null; 
     switch (position) { 
      case 0: 
       fragment = new MyOrders(); 
       break; 
      case 1: 
       fragment = new MyWallet(); 
       break; 
      case 2: 
       fragment = new RateCard(); 
       break; 
      case 3: 
       fragment = new Offers(); 
       break; 
      case 4: 
       fragment = new Help(); 
       break; 
      case 5: 
       fragment = new Notifi(); 
       break; 

      default: 
       break; 
     } 

     if (fragment != null) { 
      FragmentManager fragmentManager = getFragmentManager(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.frame_container, fragment).commit(); 

      // update selected item and title, then close the drawer 
      mDrawerList.setItemChecked(position, true); 
      mDrawerList.setSelection(position); 
      setTitle(navMenuTitles[position]); 
      mDrawerLayout.closeDrawer(mDrawerList); 
     } else { 
      // error in creating fragment 
      Log.e("MainActivity", "Error in creating fragment"); 
     } 
    } 

    @Override 
    public void setTitle(CharSequence title) { 
     mTitle = title; 
     supportActionBar.setTitle(mTitle); 
    } 



    @Override 
    protected void onPostCreate(Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 
     // Sync the toggle state after onRestoreInstanceState has occurred. 
     mDrawerToggle.syncState(); 
    } 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     // Pass any configuration change to the drawer toggls 
     mDrawerToggle.onConfigurationChanged(newConfig); 
    } 

} 

profile.xmlです

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".Profile" 
    android:id="@+id/app_name"> 
    <include 
     android:id="@+id/tool_bar" 
     layout="@layout/tool_bar" 
     ></include> 
    <TextView 
     android:id="@+id/hi" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dp" 
     android:layout_gravity="center" 
     android:textSize="20dp" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:text="Hi user"/> 

    <android.support.v4.widget.DrawerLayout 
     android:id="@+id/drawerLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <FrameLayout 
      android:id="@+id/frame_container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 
      <ListView 
       android:id="@+id/list" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:divider="@color/list_divider" 
       android:dividerHeight="1dp" 
       android:listSelector="@drawable/list_row_selector" 
       android:background="@color/list_background"/> 
     </FrameLayout> 
     <ListView 
      android:id="@+id/list_slidermenu" 
      android:layout_width="240dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      android:choiceMode="singleChoice" 
      android:divider="@color/list_divider" 
      android:dividerHeight="1dp" 
      android:listSelector="@drawable/list_selector" 
      android:background="@color/list_background"/> 
    </android.support.v4.widget.DrawerLayout> 

</RelativeLayout> 

toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/colorPrimary" 
     android:elevation="4dp" 

     > 

    </android.support.v7.widget.Toolbar> 

答えて

0

まず:あなたのtoolbar.xmlにこのapp:titleTextAppearance="@style/Toolbar.TitleText"を追加するツールバーのタイトルを設定し、あなたが持っているあなたのstyle.xmlファイルにしますスタイルを作成する:

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title"> 
    <item name="android:textSize">24sp</item> 
    <item name="android:textColor">@color/colorWithe</item> 
</style> 

profile.javaまたはmanifest.xmlのクラス宣言でtoolbar.setTextを使用すると、android:label="@string/name_to_show_in_toolbar"を追加できます。すべての

第二:あなたのprofile.xmlでファイルの先頭と、そのようなその下に他のコンポーネントに<android.support.v4.widget.DrawerLayout />をしよう:

<?xml version="1.0" encoding="utf-8"?> 
    <android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/DrawerLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:elevation="7dp"> 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".Profile" 
    android:id="@+id/app_name"> 
    <include 
     android:id="@+id/tool_bar" 
     layout="@layout/tool_bar" 
     ></include> 


    <!-- the other componennts --> 

    </android.support.v4.widget.DrawerLayout> 

希望のtiはあなたを助けます。

0
You have to simply do one thing that is you have to make custom toolbar and after that include that custom layout in toolbar like the way i will shown you below in code snippet. 

    <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="@drawable/topbar" 
      android:contentInsetLeft="0dp" 
      android:contentInsetStart="0dp" 
      app:contentInsetLeft="0dp" 
      app:contentInsetStart="0dp" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

      <include layout="@layout/toolbar" /> 

     </android.support.v7.widget.Toolbar> 

and after that set title in your textview which you made in custom toolbar layout 
0

あなたは、引き出し内のレイアウトのNavigationViewを使用することができます

<?xml version="1.0" encoding="utf-8"?> 

<include 
    layout="@layout/app_bar_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    android:background="@color/white" 
    app:headerLayout="@layout/nav_header_main" 
    app:menu="@menu/activity_main_drawer"/> 

app_bar_main:

<?xml version="1.0" encoding="utf-8"?> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:elevation="0dip" 
    android:background="@color/white" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay"> 
     <FrameLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <!-- This is a centered logo --> 
      <ImageView 
       android:id="@+id/toolbar_logo" 
       android:src="@drawable/ic_launcher" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_marginTop="4dp" 
       android:layout_marginBottom="4dp" 
       android:layout_marginRight="16dp" 
       android:layout_gravity="start"/> 
      /> 

      <include 
       layout="@layout/ab_view" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_gravity="center" /> 
     </FrameLayout> 
    </android.support.v7.widget.Toolbar> 

</android.support.design.widget.AppBarLayout> 

<include layout="@layout/content_main" /> 

0

あなたはサポートライブラリのツールバーを使用している場合は、代わりにActivityAppCompatActivityを使用する必要があります...

public class Profile extends AppCompatActivity 

ActivityクラスでもsetSupportActionBar()方法を持っているので、私はありませんあなたのコードが今すぐコンパイルされるべきではないと推測しています。

関連する問題