2013-08-02 70 views
1

我收到了一個使用JFeinstein的SlidingMenu庫的應用程序。 我正在使用導航ListView的自定義適配器。我沒有任何問題。ListView不顯示任何項目。 (從SlidingMenu到NavigationDrawer)

由於新的SupportLibrary版本引入了ActionBarCompat和NavigationDrawer,我想擺脫ActionBarSherlock和SlidingMenu,因爲我認爲這是一個依賴「官方」庫的更乾淨的解決方案。 今天我想用NavigationDrawer交換SlidingMenu庫。我沒有改動Adapter,改變了main.activity.xml,就像在d.android.com的官方教程中解釋的那樣。

但在ListView中沒有呈現任何項目。滑動效果很好,但我看不到任何物品。我沒有改變適配器上的任何東西,因爲它在SlidingMenu庫上效果很好。適配器#getCount()返回10 - 所以它最初不是空的。我還調用了Adapter#notifyDataSetChanged()以確保所有項目都會呈現,但Adapter#getView(...)永遠不會被調用。

如果我把另一個ListView放到MainActivity的佈局上(放入表示我內容的RelativeLayout中),這個ListView也不會顯示任何項目。 我複製了一些適用於SimpleAdapter的基本適配器示例,但即使使用此適配器,也沒有ListView顯示任何項目!

我在我的活動代碼:

private void setupSidemenu() { 
     // init sidemenu ui 
     DrawerLayout drawerLayout = (DrawerLayout)findView(R.id.drawer_layout); 
     ListView list = (ListView) findViewById(R.id.left_drawer); 
     menuAdapter = new SideMenuAdapter(getApplicationContext()); 
     list.setAdapter(menuAdapter); 
    } 

回答

0

我終於發現了問題。我正在使用AndroidAnnotations,並以某種方式覆蓋了Activity#onCreate(Bundle),但也在@EActivity(R.layout.xxx)註釋中指定了佈局。由於某些原因,#setupSidemenu()被調用但影響另一個listview?哪個沒有顯示? 確切的原因仍然不清楚,但我現在使用@AfterViews和我的ListView被填充。