具有“自定义"视图的布局在23.4.0设计库上损坏 [英] Tablayout with Custom view Broken on 23.4.0 design lib

查看:74
本文介绍了具有“自定义"视图的布局在23.4.0设计库上损坏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将tablayout设置为我的viewpager.但是当我使用notifyDataSetChanged时,它将删除我的customview并显示默认标题视图 我的代码

i am setting tablayout to my viewpager . but when i use notifyDataSetChanged then it removing my customview and showing default title view my code

 ViewPager viewPager = findView(R.id.view_pager);
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), getResources(), getFragments());
    viewPager.setAdapter(adapter);

    tabs.setupWithViewPager(viewPager);
    for (int i = 0; i < tabs.getTabCount(); i++) {
        TabLayout.Tab tab = tabs.getTabAt(i);
        tab.setCustomView(getTabView(i));

    }
    t.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            adapter.notifyDataSetChanged();
        }
    });


   public View getTabView(int position) {
    View v = LayoutInflater.from(this).inflate(R.layout.pager_tab, null);
    RelativeLayout linearLayout = (RelativeLayout) v.findViewById(R.id.view);



    return v;
}

所以它正常工作,但是当我调用adapter.notifyDataSetChanged();时然后我的布局不显示我已经添加了prev的customview.它只显示默认标题..相同的代码正在工作 如果我用 编译"com.android.support:design:23.1.1"

so its working properly but when i call adapter.notifyDataSetChanged(); then my tablayout not showing customview which i have already added prev . it only showing default title .. this same code is working if i use compile "com.android.support:design:23.1.1"

但是如果我将其更改为较新版本,则无法正常工作,请任何人帮我尝试一下,但是我无法获得ans或任何其他替代的lib或方法,可以在选项卡视图中添加customView

but if i change this to newer version this is not working please can any one help me i trying this but havnt got ans or any other alternative lib or method where i can add customView in tab view

推荐答案

可能是一个错误!而且我仍然在最新的25.2.0支持SDK上面对这个问题.

This might be a bug! and I'm still facing this on latest 25.2.0 support SDK.

默认情况下,在更新viewpager时,为 tablayout 分配了自动刷新.可以通过关闭自动刷新(如下面的代码所示)

By default, tablayout is assigned with auto refresh when viewpager is updated. This can be fixed (Workaround) by turning off auto refresh like in below code,

viewPager = (ViewPager) findViewById(R.id.viewpager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);

 setupViewPager(viewPager);
tabLayout.setupWithViewPager(viewPager,false); // Do like this to disable auto refresh of tabs

这篇关于具有“自定义"视图的布局在23.4.0设计库上损坏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆