QQ最新版佈局猜測

最近想實現相似QQ的佈局,使用toolbar,tablayout,viewpager,drawerlayout等控件,碰到了一些問題。 java


  1. 底部按鈕切換以後,每一個頁面頭部佈局不同。使用toolbar的話,須要在每一個fragment中使用單獨的toolbar。這樣又出現一個新的問題,drawerlayout如何操做,drawerlayout須要與activity關聯,而且在每一個fragment中應該只有一個實例。
  2. toolbar放在fragment中以後,每一個fragment menu不顯示,由於fragment的menu依附於activity(就我我的理解)。
  3. 將toolbar放在activity中,能夠保證drawer只有一個,可是這樣得控制每一個頁面的toolbar 的佈局。
最近經過截取QQ的佈局,它的頭像是放在framelayout中,在activity中保持一樣的位置,這樣每一個頁面打開我的資料都是同樣的,也就是說activity不使用toolbar。每一個頁面使用 獨立 的toolbar(固然它並無使用這個控件)。可是drawerlayout須要用到toolbar,所以若是使用QQ的方式就不能用drawerlayout.

最後採起的是相似QQ的佈局,去掉drawerlayout,使用其餘側滑菜單。 ide

每一個fragment須要使用toolbar來初始化menu。 佈局

toolbar.inflateMenu(R.menu.menu_fragment_index);
        locationItem =  toolbar.getMenu().findItem(R.id.action_location).setTitle(App.CITY_NAME);



使用toolbar來設置點擊事件 spa

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                return false;
            }
        });



去掉fragment 的 onCreateOptionsMenu, onOptionsItemSelected重載,這種狀況下,實現這兩個方法並不能顯示Menu,並且按手機的menu鍵menu會顯示在底部。

附上QQ的界面: code

相關文章
相關標籤/搜索