标签: android-tablayout

在片段中使用TabLayout; 标签文字不可见

我目前正在尝试新的Android支持设计库中的各种新组件.我NavigationView在my中实现了一个MainActivity.java,它使用FragmentManager在Navigation抽屉中的项目之间导航:

getSupportFragmentManager()
    .beginTransaction()
    .replace(R.id.content, mTabLayoutFragment)
    .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
    .commit();
Run Code Online (Sandbox Code Playgroud)

TabLayout在其中一个片段中使用了一个.这是片段的布局:

<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="fixed"
        app:tabGravity="fill"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"/>

</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

它背后的Java代码:

import android.os.Bundle;
import android.support.design.widget.*;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class TabLayoutFragment extends Fragment {   


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View inflatedView = inflater.inflate(R.layout.fragment_tablayout, container, false);

        TabLayout tabLayout = (TabLayout) …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-support-design android-tablayout

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

PagerTabStrip和TabLayout之间的区别

我正在开发一个应用程序,我想在其中添加标签,以便可以使用PagerTabStripTabLayout使用ViewPager 添加标签.

它看起来和我没什么区别,但我猜它们之间有一些区别所以它们是两个类.那么它们之间的主要区别是什么?

android pagertabstrip android-tablayout

20
推荐指数
2
解决办法
8316
查看次数

Android:将TabLayout固定到Scrollview的顶部

我正在看手机上的推特应用程序.

推特应用

你可以看到,当用户向上滚动时,tabLayout实际上只是很好地将自己固定在工具栏的底部而根本不移动.

我想也许他们通过将应用程序的所有顶部(配置文件图片,自行车的配置文件壁纸,草地,文本)放入CollapsingToolBarLayout和AppBarLayout,但实际上只有配置文件壁纸草地上的自行车是CollapsingToolBarLayout和AppBarLayout的一部分,因为这是实际崩溃的唯一部分.文本部分向上滚动,tabLayout只是固定在工具栏下方的顶部.

我在twitter应用程序上阅读了这些学分,看起来他们使用SlidingTabLayout来实现它们的效果.SlidingTabLayout类似于tabLayout,后者在支持库中受支持.

它看起来像现在主流应用程序使用的相当常见的模式 -

Google+应用应用的个人资料视图中使用它:

谷歌+

Facebook Moments在他们的应用中使用它:

facebook时刻

知道他们是怎么做的都设法做到了吗?

我正在寻找类似于所有这些应用程序的东西.

我的要求是:

  1. 滚动时有一个collapsingToolBarLayout崩溃
  2. 在collapsingToolBarLayout下面有一个textview,当它完全折叠时会在toolBar下面滚动和"隐藏".
  3. 当你在collapsingToolBarLayout下滚动textview时,在textview下面有一个tabLayout,它会"粘住"tabLayout.
  4. 在tabLayout下面有一个recyclerview,这样当你点击tabLayout中的每个标签时,recyclerview将在"推文","照片","收藏夹"等列表之间切换.

我查看了SO上发布的另外两个问题:

TabLayout的标签选择指示器在滚动时是否可以固定在屏幕顶部?.这里的答案似乎是改变tabLayout的行为,但我怀疑改变行为实际上会生成twitter应用程序的功能.正如我所提到的,tabLayout似乎位于CollapsingToolBarLayout和AppBarLayout之外,只有当它位于CollapsingToolBarLayout和AppBarLayout中时,行为才有效.

如何在ScrollView顶部固定TabLaout?.这个问题提出的问题与我提出的问题类似,但没有给出足够的细节,也没有答案.

twitter android android-layout google-plus android-tablayout

19
推荐指数
1
解决办法
6995
查看次数

Fragment中的Android TabLayout

Navigation Drawer用来在片段之间导航,他们都使用MainActivity工具栏,但每个片段都有自己TabLayout的3个标签,在每个标签中,我RecyclerView用来显示不同的文本和图像.

我最后一次使用actvities而不是片段,但现在使用抽屉,它使用片段.

我已经到了标签可以工作的地步但是只要我放入ViewPager并将适配器连接到标签并且我从抽屉打开新片段我得到一个空指针这可能是什么问题?

MainActivity.java

public class MainActivity extends AppCompatActivity

    implements NavigationView.OnNavigationItemSelectedListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

@Override …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-recyclerview android-tablayout

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

带有通知徽章的Android Tablayout标签,例如whatsApp

我想实现通知徽章android.support.design.widget.TabLayout.我已尽最大努力实现它但失败了.

非常感谢任何帮助.

android badge android-tablayout

18
推荐指数
5
解决办法
3万
查看次数

自定义视图可以用作TabItem吗?

android中的TabLayout类为您提供了一个TabItem,可以让您指定文本和图标.是否可以将自定义视图用作TabItem?

我的标签看起来像这样

在此输入图像描述

正如你可以看到的除了图标和文字标签之外,我还有一个通知符号(黄色圆圈内的数字).我该如何制作这样的标签?

android android-layout android-tablayout

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

如何在Android中将TabLayout与ViewPager2一起使用

我想将com.google.android.material.tabs.TabLayout组件与Android的新ViewPager实现一起使用androidx.viewpager2.widget.ViewPager2。但是,setupWithViewPager(..)提供的方法TabLayout仅支持旧的ViewPager实现。有没有一种方法可以轻松地将a绑定TabLayoutViewPager2组件?

android android-tablayout androidx android-viewpager2

18
推荐指数
7
解决办法
6100
查看次数

如何在Tab布局中设置Tab宽度?

我正在尝试创建一个tab layout有两个tabs.当我在小型移动设备上运行应用程序时tab layout看起来不错,但是当我在其上运行相同的应用程序时Tablet,显示如下.

在平板电脑上看起来像这样

我希望每个标签占据整个空间,两端都没有任何间隙.我这样创造了tab layout......

private void drawTabLayout() {
    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.addTab(tabLayout.newTab().setText("Imprint") );
    tabLayout.addTab(tabLayout.newTab().setText("Legal"));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    tabLayout.setTabMode(TabLayout.MODE_FIXED);
    tabLayout.setSelectedTabIndicatorHeight(10);
    tabLayout.setBackgroundColor(Color.WHITE);
}
Run Code Online (Sandbox Code Playgroud)

我搜索了很多网站但找不到合适的答案.提前致谢.

java android android-tablayout

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

Android中的导航抽屉和VideoView

我正在使用导航抽屉和tablayout.我的标签中有一个视频,一开始看不到,但我能听到声音.一旦我设定

video_view.setZOrderOnTop(true);
Run Code Online (Sandbox Code Playgroud)

我也可以看到视频,但这会导致导航抽屉出现问题.

当我滑动它时,视频不会像所有其他元素一样隐藏在导航抽屉后面.

在此输入图像描述

如果我不使用

video_view.setZOrderOnTop(true);
Run Code Online (Sandbox Code Playgroud)

然后我的抽屉工作正常.

main_activity.xml

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<!-- Framelayout to display Fragments -->
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/menuwhite2"
                    android:id="@+id/custom_home"
                    android:gravity="center"
                    android:layout_gravity="right"
                    android:layout_marginRight="10dp"/>

                <android.support.design.widget.TabLayout
                    android:id="@+id/tabs"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:tabMode="fixed"
                    app:tabGravity="fill"
                    />

        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"  />
</android.support.design.widget.CoordinatorLayout>


<!-- Listview to display slider menu -->
<ListView
    android:id="@+id/list_slidermenu"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="end"
    android:choiceMode="singleChoice"
    android:divider="@color/list_divider"
    android:dividerHeight="1dp"
    android:listSelector="@drawable/list_selector"
    android:background="@color/list_background"/>
Run Code Online (Sandbox Code Playgroud)

tab_fragment.xml

<?xml …
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer android-videoview android-tablayout

17
推荐指数
1
解决办法
1080
查看次数

如何使用tablayout在viewpager中设置当前选项卡

我有一个使用tablayout的自定义viewpager(由于原因而禁用了滑动).内容根据选择的选项卡而变化.我想使用浓缩咖啡进行测试:1)单击特定选项卡2)检查选项卡特定页面中的某些数据我该怎么做.我是意式浓缩咖啡的新手

android-viewpager android-espresso android-tablayout

16
推荐指数
1
解决办法
6149
查看次数