package
com.ximi.gread.view; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.design.widget.AppBarLayout; import android.support.design.widget.NavigationView; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.ViewGroup; import android.widget.TextView; import com.famlink.frame.R; import com.famlink.frame.util.Content; import com.famlink.frame.util.ToastUtils; import com.famlink.frame.util.Utils; import com.famlink.frame.view.activity.BaseActivity; //import com.tencent.mm.sdk.openapi.IWXAPI; //import com.tencent.mm.sdk.openapi.WXAPIFactory; import com.ximi.gread.mvp.presenter.drawlayout.DrawViewInterface; import com.ximi.gread.mvp.presenter.drawlayout.DrawtViewPersenterImpl; import com.ximi.gread.view.fragment.CommentFragment; import com.ximi.gread.view.fragment.FavoritesFragment; import com.ximi.gread.view.fragment.RecommendFragment; import com.ximi.gread.view.fragment.SettingFragment; import com.ximi.gread.view.fragment.IndexFragment; import com.ximi.gread.widget.dialog.RecommentDialog; import org.xutils.view.annotation.ViewInject; import java.util.List; /** * Created by wangkai on 16/6/15. */ public class DrawLayoutActivity extends BaseActivity implements DrawViewInterface { @ViewInject(R.id.appbar) AppBarLayout appar; @ViewInject(R.id.toolbar) Toolbar toolbar; @ViewInject(R.id.drawer_layout) DrawerLayout drawer_layout; @ViewInject(R.id.navigation_view) NavigationView navigation_view; @ViewInject(R.id.navigateBar_title) TextView navigateBar_title; AppBarLayout.LayoutParams mParams; private ActionBarDrawerToggle mDrawerToggle; private DrawtViewPersenterImpl mDrawViewImpl; private FragmentManager supportFragmentManager; private IndexFragment indexFragment; private FavoritesFragment favoritesFragment; private CommentFragment commentFragment; private RecommendFragment recommendFragment; private SettingFragment settingFragment; private RecommentDialog recommentDialog; // private Toolbar toolbar; // private DrawerLayout drawer_layout; // private NavigationView navigation_vaiew; // private IWXAPI api; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); toolbar.setTitle(""); setSupportActionBar(toolbar); mDrawerToggle = new ActionBarDrawerToggle(this, drawer_layout, toolbar, R.string.drawer_open, R.string.drawer_close); mDrawerToggle.syncState(); drawer_layout.setDrawerListener(mDrawerToggle); setupDrawerContent(navigation_view); // navigateBar_title.setVisibility(View.VISIBLE); // navigateBar_title.setText(R.string.navigation_1); toolbar.setTitle(R.string.navigation_1); mDrawViewImpl = new DrawtViewPersenterImpl(this); // api = WXAPIFactory.createWXAPI(context, Content.APP_ID, true); // api.registerApp(Content.APP_ID); mParams = (AppBarLayout.LayoutParams) appar.getChildAt(0).getLayoutParams(); supportFragmentManager = getSupportFragmentManager(); // if(indexFragment == null){ // indexFragment = new IndexFragment(); // } // switchFragment(indexFragment); // getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new IndexFragment()).commit(); switchIndexs(); } @Override public int setLayout() { return R.layout.v7_activity_drawerlayout; } @Override public void setInterfaceView() { } @Override public void setGenericNodataOrNonetwork() { } Menu searchMenu; @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.search) { ToastUtils.showToast("Search"); return true; } return super.onOptionsItemSelected(item); } private void setupDrawerContent(NavigationView navigationView) { navigationView.setNavigationItemSelectedListener( new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { mDrawViewImpl.switchNavigation(menuItem.getItemId()); menuItem.setChecked(true); if (menuItem.getItemId() != R.id.navigation_group_4) { drawer_layout.closeDrawers(); } return true; } }); } @Override public void switchIndexs() { mParams.setScrollFlags(5);//AppBarLayout下的toolbar会随着滚动条折叠 toolbar.setTitle(R.string.navigation_1); // navigateBar_title.setText(R.string.navigation_1); if(indexFragment == null){ indexFragment = new IndexFragment(); } switchFragment(indexFragment); // getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new IndexFragment()).commit(); } @Override public void switchFavorites() { mParams.setScrollFlags(0); //AppBarLayout下的toolbar不会随着滚动条折叠 toolbar.setTitle(R.string.navigation_2); // navigateBar_title.setText(R.string.navigation_2); if(favoritesFragment == null){ favoritesFragment = new FavoritesFragment(); } switchFragment(favoritesFragment); // getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new FavoritesFragment(), TAG_THEME).commit(); } @Override public void switchComment() { mParams.setScrollFlags(0); //AppBarLayout下的toolbar不会随着滚动条折叠 toolbar.setTitle(R.string.navigation_3); // navigateBar_title.setText(R.string.navigation_3); if(commentFragment == null){ commentFragment = new CommentFragment(); } switchFragment(commentFragment); // getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new CommentFragment(), TAG_THEME).commit(); } @Override public void switchShareFriend() { toolbar.setTitle(R.string.navigation_1); // navigateBar_title.setText(R.string.navigation_4); recommentDialog = new RecommentDialog(this, new RecommentDialog.RecommentDialogOnClickListener() { @Override public void OnFriendCicleClick() { ToastUtils.showToast("OnFriendCicleClick"); // Utils.wechatShare(1, "https://www.baidu.com/", "测试", "测试描述", getResources(), R.mipmap.ic_launcher, api); } @Override public void OnWeChatClick() { ToastUtils.showToast("OnWeChatClick"); // Utils.wechatShare(0, "https://www.baidu.com/", "测试", "测试描述", getResources(), R.mipmap.ic_launcher, api); } @Override public void OnMicroBlogSina() { ToastUtils.showToast("OnMicroBlogSina"); } }); recommentDialog.show(); // if(recommendFragment == null){ // recommendFragment = new RecommendFragment(); // } // switchFragment(recommendFragment); } @Override public void switchSetting() { mParams.setScrollFlags(0); //AppBarLayout下的toolbar不会随着滚动条折叠 toolbar.setTitle(R.string.navigation_5); // navigateBar_title.setText(R.string.navigation_5); if(settingFragment == null){ settingFragment = new SettingFragment(); } switchFragment(settingFragment); // getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new SettingFragment(), TAG_THEME).commit(); } public void switchFragment(Fragment fragment){ List<Fragment> fragmentslist = supportFragmentManager.getFragments(); if(fragmentslist != null){ for(int i = 0;i<fragmentslist.size();i++){ supportFragmentManager.beginTransaction().hide(fragmentslist.get(i)).commitAllowingStateLoss(); } } if(fragment.isAdded()){ if(fragment instanceof IndexFragment){ TAG_THEME = TAG_OUT; }else{ TAG_THEME = TAG_BACK; } supportFragmentManager.beginTransaction().show(fragment).commitAllowingStateLoss(); }else { if(fragment instanceof IndexFragment){ TAG_THEME = TAG_OUT; }else{ TAG_THEME = TAG_BACK; } supportFragmentManager.beginTransaction().add(R.id.frame_content, fragment).commitAllowingStateLoss(); } } private String TAG_THEME; private String TAG_BACK = "back"; private String TAG_OUT = "out"; @Override public void onBackPressed() { if(drawer_layout.isDrawerOpen(navigation_view)){ drawer_layout.closeDrawers(); }else{ // if((supportFragmentManager.findFragmentByTag(TAG_THEME)) instanceof IndexFragment){ // super.onBackPressed(); // // }else{ // // switchIndexs(); // } if(TAG_BACK.equals(TAG_THEME)){ switchIndexs(); }else if(TAG_OUT.equals(TAG_THEME)){ super.onBackPressed(); } } } }
------------------------------------------------------------------------------------------------
实现方式:
AppBarLayout appbar = (AppBarLayout)findById(R.id.appbar);
AppBarLayout.LayoutParams mParams = (AppBarLayout.LayoutParams) appBar.getChildAt(0).getLayoutParams();
mParams.setScrollFlags(0);
mParams.setScrollFlags(0);
mParams.setScrollFlags(5);
-------------------------------------------------------------------------------------------------
mParams.setScrollFlags(0);
AppBarLayout下的toolbar不会随着手指的上下滑动滚动条折叠
类似于XML中的:app:layout_scrollFlags="scroll|enterAlwaysCollapsed"
-------------------------------------------------------------------------------------------------
mParams.setScrollFlags(1);
AppBarLayout下的toolbar会随着Item滑动到最上一层的时候才会显示ToolBar
类似于XML中的:<p>app:layout_scrollFlags="scroll|enterAlways"
-------------------------------------------------------------------------------------------------
mParams.setScrollFlags(1);
AppBarLayout下的toolbar会随着滚动条折叠
-------------------------------------------------------------------------------------------------
代码实现方式在我上述代码中全部用”________________“标记的代码
<img src="https://img-blog.csdn.net/20160715154115673?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="320" height="640" alt="" /><img src="https://img-blog.csdn.net/20160715154153314?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="320" height="640" alt="" /><img src="https://img-blog.csdn.net/20160715154221736?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="320" height="640" alt="" />