2015-02-19 3 views
-1

Я создал Ящик меню Примера, Ниже мой исходный код,Почему мое меню ящика выглядит черным?

public class DrawerActivity extends Activity 
{ 
    private String [] menuOptions = new String[] { "Option1", "Option2","Option3" }; 
    private DrawerLayout mDrawerLayout; 
    private ListView mDrawerList; 
    private ActionBarDrawerToggle mDrawerToggle; 
    private ArrayAdapter<String> adapter; 


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

     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     mDrawerList = (ListView) findViewById(R.id.left_drawer); 

     adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, menuOptions); 
     mDrawerList.setAdapter(adapter); 
     mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); 

     getActionBar().setDisplayHomeAsUpEnabled(true); 
     getActionBar().setHomeButtonEnabled(true); 

     // ActionBarDrawerToggle ties together the the proper interactions 
     // between the sliding drawer and the action bar app icon 
     mDrawerToggle = new ActionBarDrawerToggle(
       this,     /* host Activity */ 
       mDrawerLayout,   /* DrawerLayout object */ 
       R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ 
       R.string.drawer_open, /* "open drawer" description for accessibility */ 
       R.string.drawer_close /* "close drawer" description for accessibility */ 
       ) 
     { 
      public void onDrawerClosed(View view) 
      { 
       invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 
      } 

      public void onDrawerOpened(View drawerView) 
      { 
       invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 
      } 
     };  

     mDrawerLayout.setDrawerListener(mDrawerToggle); 

    } 

    /** 
    * When using the ActionBarDrawerToggle, you must call it during 
    * onPostCreate() and onConfigurationChanged()... 
    */ 

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

    private class DrawerItemClickListener implements ListView.OnItemClickListener 
    { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) 
     { 
      // update selected item and title, then close the drawer 
      mDrawerList.setItemChecked(position, true); 
      mDrawerLayout.closeDrawer(mDrawerList); 
     } 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 
     // The action bar home/up action should open or close the drawer. 
     // ActionBarDrawerToggle will take care of this. 
     if (mDrawerToggle.onOptionsItemSelected(item)) 
     { 
      return true; 
     } 
     else return false; 
    } 
} 

Это код моего файла AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.drawerdemo" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="21" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".DrawerActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

код работает нормально, но появляется мое меню Ящика как черный, видите изображения

http://i.stack.imgur.com/toEfm.png

Можете ли вы сказать мне, где я сделал ошибку?

+1

Могу ли я получить причину -1 голос? – user4583559

+0

Вы должны использовать другую тему. –

ответ

0
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

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

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

     <!-- The main content view --> 

     <FrameLayout 
      android:id="@+id/content_frame" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
     <!-- The navigation drawer --> 

     <LinearLayout 
      android:id="@+id/drawer" 
      android:layout_width="240dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      android:background="@android:color/darker_gray" 
      android:orientation="vertical" > 
     </LinearLayout> 
    </android.support.v4.widget.DrawerLayout> 

</LinearLayout> 

Изменение цвета фона вашего макета меню

+0

Правильно, был '# 111' установлен как фон списка, Когда я заменяю его на' # FFF', теперь он показывает мне список меню на белом фоне. – user4583559

+0

Уже сделал это, но я не могу проголосовать за ваш ответ, поскольку у меня нет достаточной репутации. – user4583559

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