标签: android-tablayout

删除android上TabLayout下面的阴影

我正在尝试在使用TabLayout时删除选项卡下面的阴影,TabLayout是在普通布局中定义的(而不是作为工具栏或操作栏的一部分).

将主题设置为

<item name="android:windowContentOverlay">@null<item/>
Run Code Online (Sandbox Code Playgroud)

要么

<item name="windowContentOverlay">@null<item/>
Run Code Online (Sandbox Code Playgroud)

没用.

此外,将高程设置为0也没有帮助.

 <android.support.design.widget.TabLayout xmlns:app="http://schemas.android.com/apk/res-auto"
                android:id="@+id/sliding_tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:background="@android:color/white"
                app:backgroundTint="@android:color/transparent"
                app:tabIndicatorColor="@android:color/transparent"
                app:tabMode="scrollable"/>
Run Code Online (Sandbox Code Playgroud)

android android-styles android-tablayout

11
推荐指数
2
解决办法
9868
查看次数

TabLayout的标签没有显示

我有一个主要活动,它承载一个片段,该片段反过来托管一个TabLayout(带有一个ViewPager).显示标签栏,但标签本身未显示.

这是我在显示主机片段的主要活动中的代码:

        Fragment fragment = new BMITabsFragment();

        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).addToBackStack(Constants.BMI_TABS_FRAGMENT).commit();
Run Code Online (Sandbox Code Playgroud)

这是我托管TabLayout的片段,它是BMITabsFragment(sa):

public class BMITabsFragment extends Fragment {
...
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }

}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    // Get the ViewPager and set it's PagerAdapter so that it can display items
    ViewPager viewPager = (ViewPager) view.findViewById(R.id.viewpager);
    viewPager.setAdapter(new BMIFragmentPagerAdapter(getActivity().getSupportFragmentManager(),
            getActivity()));

    // Give the TabLayout the ViewPager
    TabLayout …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager android-tablayout

11
推荐指数
3
解决办法
2万
查看次数

如何将嵌套的ArrayList分割为TabLayout的每个布局

我正在使用嵌套的ArrayList for Tablayout.ArrayList的每个元素都会填充每个Tab.标签计数根据父级arraylist的大小而变化.例如,当父ArrayList的大小为2时,选项卡数为2; 当大小3标签计数3..etc..为了解释这种情况很困难,我准备了expalantion图像..

图片1

此图像代表一般外观.我想用ArrayLists为每个元素填充这个TextViews

图2

此图像代表我的数据类型; 键和值ArrayList是嵌套的arraylist,它们在每个索引中包含arraylist.

图3 - 图像4 - 图像5

这个图像代表了tabLayouts过去的样子.我希望我的数据看起来像这个图像.

所以问题是PopUpDetailsAdapterPlanT Class;

当我使用下面的代码时,每行填充相同的项目.对于此示例,每行写入ArrayList的最后一个元素(位置 - 明尼苏达州)如何处理此问题.谢谢你的帮助

public class PopUpDetailsAdapterPlanT extends ArrayAdapter {
Context context;
private ArrayList<ArrayList<Object>> keys;
private ArrayList<ArrayList<String>> values;

    public PopUpDetailsAdapterPlanT(Context context, ArrayList<ArrayList<Object>> keys, ArrayList<ArrayList<String>> values) {
        super(context,R.layout.popupdetails_listview_simpleitem);
        this.keys = keys;
        this.values = values;
        this.context = context;
    }

    public View getView(int position, View convertView, ViewGroup parent) {

        View v = convertView;

        if (v == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = …
Run Code Online (Sandbox Code Playgroud)

android arraylist android-arrayadapter android-tablayout

11
推荐指数
1
解决办法
562
查看次数

带有圆角的Android标签布局标签

此类问题之前已经被问到,但没有得到任何正确的,有效的解决方案,所以我再次发布这个问题.再次询问并浪费你的时间.请给出一些有效的解决方案 或者让我知道我做错了什么.提前致谢.

预期标签: 在选择Tab时它应该是这样的

但是来了:

即将到来的标签 即将到来的标签

在页面上加载选项卡将像"预期选项卡"图像一样,但在选择后会出现像"即将到来的选项卡"图像. MainXML代码:

 <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                style="@style/MyCustomTabLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/background_img_jpeg"
                android:minHeight="10dp"
                android:padding="10dp"
                app:tabGravity="fill"
                app:tabIndicatorColor="@color/TRANSPARENT"
                app:tabMode="fixed"
                app:tabTextColor="@color/blue" />
Run Code Online (Sandbox Code Playgroud)

@风格/ MyCustomTabLayout

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
        <item name="tabBackground">@drawable/tab_bg</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

@绘制/ tab_bg

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true"
        android:drawable="@drawable/tab_bgselected" />
    <item android:drawable="@drawable/tab_bgnotselected" />
    </selector>
Run Code Online (Sandbox Code Playgroud)

@绘制/ tab_bgselected

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:bottom="0dp"  android:top="0dp"
          android:left="0dp" android:right="0dp" >
        <shape android:shape="rectangle">
            <solid android:color="@color/blue" />
            <corners
                android:topLeftRadius="10dp"
                android:bottomLeftRadius="10dp">
            </corners>
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

就像那个@ drawable/tab_bgnotselected

在代码背后我写道:

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                try { …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-tablayout

11
推荐指数
4
解决办法
7893
查看次数

使TabLayout文本变为粗体

我正在使用Android设计支持库中的TabLayout并想要设置其文本样式(标题).特别是大胆.如何在XML中实现这一点?

<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
app:tabTextColor="@color/white"
app:tabSelectedTextColor="@color/white"
app:tabIndicatorColor="@color/accent"
android:layout_height="wrap_content"
app:tabIndicatorHeight="3dp" />
Run Code Online (Sandbox Code Playgroud)

android android-tablayout

11
推荐指数
2
解决办法
2万
查看次数

在viewpager上滑动时,选项卡选择器无法在上一个选项卡上单击

我正在关注这个例子..

我有一个问题,当我在ViewPager 相应的屏幕上滑动时,fragment但是当我从左向右或从右向左滑动并选择上一个选项卡时,选项卡指示符出现在新选择的选项卡上,但各自fragment不显示ViewPager.请帮助我,我哪里出错了?

android android-fragments android-viewpager android-tablayout

10
推荐指数
1
解决办法
7583
查看次数

动态更新TabLayout而不更改选定的选项卡

我想用Material Design Support库实现一个向导.

我正在使用ViewPager,Tablayout但我在动态添加新标签时遇到问题.

首先,我在onCreate方法中设置我的小部件:

viewPager = (ViewPager) findViewById(R.id.tab_viewpager);
tabLayout = (TabLayout) findViewById(R.id.tab_layout);

adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFrag(new DummyFragment(), "1");
adapter.addFrag(new DummyFragment(), "2");
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
Run Code Online (Sandbox Code Playgroud)

然后我想在单击列表中的元素时添加另一张卡片:

adapter.addFrag(new DummyFragment(), "3");
adapter.notifyDataSetChanged();
tabLayout.setTabsFromPagerAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

问题是:添加后,所选卡首先重置.

如何防止这种行为?

android android-layout android-viewpager android-tablayout

10
推荐指数
1
解决办法
5432
查看次数

启动时未选中TabLayout选中的选项卡图标

TabLayout在我的应用中使用了Tabbed导航.我有一个非常奇怪的问题,我使用此代码创建了4个选项卡:

private int[] tabIcons = {R.drawable.navigation_timeline_icon_selector, R.drawable.navigation_feed_icon_selector,
        R.drawable.navigation_messages_icon_selector, R.drawable.navigation_notification_icon_selector};

 TabLayout tabLayout = setTabLayout();
    if (tabLayout != null) {
        for (int i = 0; i < 4; i++) {
            tabLayout.getTabAt(i).setIcon(tabIcons[i]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

tabIcon中的每个项目都是selector选定状态和非选定状态.所有图标选择器配置如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:drawable="@drawable/navigation_timeline_selected_icon" android:state_selected="true"/>
      <item android:drawable="@drawable/navigation_timeline_selected_icon" android:state_pressed="true"/>
      <item android:drawable="@drawable/navigation_timeline_icon" />
</selector>
Run Code Online (Sandbox Code Playgroud)

问题是当应用程序启动时,第一个选定的选项卡(索引0)不使用选定的状态图标.相反,它使用非选择状态.

更详细的解释是这个问题的截图,首次启动我的选项卡如下所示:

在此输入图像描述

相反,它应该是这样的:

在此输入图像描述

更改页面后,所有图标都恢复为完整功能,并且正确选择了所选状态.

我尝试使用该TabLayout.Tab select()方法,但结果与使用的图标相同是未选择的图标.

有人知道我能做些什么来解决它吗?

icons tabs android android-selector android-tablayout

10
推荐指数
2
解决办法
8374
查看次数

当Tablayout中使用自定义视图时,com.android.support:design:23.3.0中断了

我正在添加自定义视图,tablayout因为我正在使用以下链接方法:

https://guides.codepath.com/android/google-play-style-tabs-using-tablayout
Run Code Online (Sandbox Code Playgroud)

这工作正常.我正在使用com.android.support:design:23.1.1,但是当我更新到com.android.support:design:23.3.0有问题时:

自定义视图可见,但是当我打电话时

 viewPager.getAdapter().notifyDataSetChanged(); 
Run Code Online (Sandbox Code Playgroud)

然后自定义视图不再可见,它已经消失了.知道23.3.0中有什么变化会影响到这个吗?

我该如何解决这个问题?相同的代码在23.1.1中正常工作,但在23.3.0中没有.

android android-design-library android-tablayout

10
推荐指数
0
解决办法
167
查看次数

Leak Canary 使用 ViewPager2 检测 TabLayout 的内存泄漏

我按照官方文档设置了一个带有 ViewPager2 的 TabLayout。我以这种方式使用 TabLayoutMediator 将 TabLayout 与 ViewPager2 连接起来:

TabLayoutMediator(binding.tabLayout, binding.viewPager) { tab, position ->
        tab.setIcon(getTabIcon(position))
        tab.text = getTabTitle(position)
    }.attach()
Run Code Online (Sandbox Code Playgroud)

但是 Leak Canary 检测到似乎与 TabLayout 和 TabLayoutMediator 相关的内存泄漏。日志如下:

2020-05-13 17:57:32.914 D/LeakCanary: ????
2020-05-13 17:57:32.914 D/LeakCanary: ? GC Root: Local variable in native code
2020-05-13 17:57:32.914 D/LeakCanary: ?
2020-05-13 17:57:32.914 D/LeakCanary: ?? android.net.ConnectivityThread instance
2020-05-13 17:57:32.914 D/LeakCanary: ?    Leaking: NO (PathClassLoader? is not leaking)
2020-05-13 17:57:32.914 D/LeakCanary: ?    Thread name: 'ConnectivityThread'
2020-05-13 17:57:32.914 D/LeakCanary: ?    ? ConnectivityThread.contextClassLoader
2020-05-13 17:57:32.914 D/LeakCanary: …
Run Code Online (Sandbox Code Playgroud)

android memory-leaks leakcanary android-tablayout

10
推荐指数
3
解决办法
2467
查看次数