AppBarLayout显示隐藏时切换侧栏ToolBar被隐藏的问题

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="" />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值