2014-12-22 89 views
1

enter image description here我使用NavigationDrawerItemsAdapter偵聽顯示滑塊菜單中的選項時,選擇是不太它顯示半部分爲透明我想顯示白色背景爲設備的高度。我需要顯示的背景顏色爲白色顏色滑塊菜單

public class BaseNavigationDrawerActivity extends BaseActivity implements 



     // for getting Left Navigation drawerImages 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_navigation_screen); 

      mContext = BaseNavigationDrawerActivity.this; 
      mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
      mDrawersList = (ListView) findViewById(R.id.lv_left_drawer); 

      LayoutInflater inflater = this.getLayoutInflater(); 

      // adding listview header 
      View header = inflater.inflate(R.layout.leftnav_headerview, null); 
      mDrawersList.addHeaderView(header); 
      mProfileView = (ImageView) header.findViewById(R.id.img_profile); 
      mProfileUserName = (TextView) header.findViewById(R.id.tv_username); 
      // set a custom shadow that overlays the main content when the drawer 
      // opens 
      ShowLogoutOption(); 

      mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, 
        GravityCompat.START); 

      mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, 
        R.drawable.ic_apphistory_menu, R.string.drawer_open, 
        R.string.drawer_close) { 
       @Override 
       public void onDrawerClosed(View drawerView) { 
        supportInvalidateOptionsMenu(); 
       } 

       @Override 
       public void onDrawerOpened(View drawerView) { 
        supportInvalidateOptionsMenu(); 
       } 
      }; 

      mNavigationDrawerAdapter = new NavigationDrawerItemsAdapter(); 
      mDrawersList.setAdapter(mNavigationDrawerAdapter); 
      mDrawerLayout.setDrawerListener(mDrawerToggle); 
      mProfileUserName.setEnabled(false); 
      mDrawersList.setOnItemClickListener(new DrawerItemClickListener()); 
      mProfileView.setOnClickListener(this); 
      initActionBar("",false); 
     } 

     @Override 
     protected void onResume() { 
      super.onResume(); 

      mNavigationDrawerAdapter.notifyDataSetChanged(); 
     } 



     @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); 
     } 

     private class DrawerItemClickListener implements OnItemClickListener { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View v, int position, 
        long arg3) { 
       mDrawersList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 



      } 


     } 

     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      return super.onCreateOptionsMenu(menu); 
     } 

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

     protected void replaceFragment(Fragment fragment) { 
      FragmentManager fragmentManager = getSupportFragmentManager(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.content_frame, fragment).commit(); 
     } 

     /** 
     * This class used to update data to LeftNavigationDrawer 
     * 
     * @author nvanamala 
     * 
     */ 
     private class NavigationDrawerItemsAdapter extends BaseAdapter { 
      private ImageView mLeftNavigationImage; 
      private TextView mLeftNavigationText; 

      @Override 
      public int getCount() { 
       return mLeftNavigationDrawerItems.length > 0 ? mLeftNavigationDrawerItems.length 
         : 0; 
      } 

      @Override 
      public Object getItem(int position) { 
       return position; 
      } 

      @Override 
      public long getItemId(int position) { 
       return position; 
      } 

      @Override 
      public View getView(final int position, View convertView, ViewGroup parent) { 


       if (convertView == null) { 
        LayoutInflater inflater = (LayoutInflater) mContext 
          .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        convertView = inflater.inflate(R.layout.left_navigation_row, 
          null, false); 
       } 
       mLeftNavigationText = (TextView) convertView.findViewById(R.id.tv_left_nav_title); 
       mLeftNavigationImage = (ImageView) convertView.findViewById(R.id.img_left_nav); 

       mLeftNavigationText.setText(mLeftNavigationDrawerItems[position]); 

       // If the position is RewardPoints then add the points to reward point 
        if (mLeftNavigationText.getText().toString().trim().equalsIgnoreCase(mRewardPoints)) { 


       } 

       } 

       convertView.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) { 

         String item = mLeftNavigationDrawerItems[position]; 

         selectItem(item); 
        } 
       }); 

    //   mLeftNavMenuImages.recycle(); 
       return convertView; 
      } 

     } 



    } 
![enter image description here][1] 


    [1]: http://i.stack.imgur.com/iSXRR.png 
+0

請在這裏發表您activity_navigation_screen佈局文件的代碼, – iMDroid

回答

1

set findViewById(R.id.lv_left_drawer);此視圖爲xml中的FILL_PARENT或MATCH_PARENT。如果它的LinearLayout或一個ListView一個RelativeLayout的內部,然後設置使用

@android:color/white 
0

的DrawerLayout高度應填寫或匹配父,那麼你的主視圖的背景顏色,根以白色

可以編程方式更改它

 mDrawerLayout.setBackgroundColor(Color.WHITE); 

希望這會有所幫助。