【问题标题】:How to implement a tabbed viewpager without actionbar in android如何在android中实现没有actionbar的选项卡式viewpager
【发布时间】:2014-12-03 12:09:32
【问题描述】:

我想实现一个选项卡式视图寻呼机,其中选项卡不是操作栏的一部分。 这样做的正确方法是什么,因为它似乎不受标准支持。

到目前为止,我一直在使用以下方法,但它似乎比它应该做的更多的努力让我感到困扰:

  • 创建水平方向的线性布局以充当标签栏视图
  • 创建单独的选项卡视图以填充选项卡栏以及样式
  • 为左右滑动创建自定义 ongesturelistener 以在选项卡之间切换
  • 为滑动时的滑入/滑出创建动画(片段交易)
  • 在滑动时为标签栏创建动画

当有一个内置的视图页面和标签栏时,这似乎是太多的工作。似乎这种“正确”的方法仅限于与操作栏一起使用。谁能提供一个简单的例子来说明我想要实现的目标? (为清楚起见,请参见下图)。

【问题讨论】:

  • 你能使用类似这个库的东西吗?我相信您可以将指标放在任何地方:github.com/JakeWharton/Android-ViewPagerIndicator
  • 我自己没有尝试过,但我希望 ViewPager 可以免费提供 #3 和 #4(这就是它的作用),并且您必须执行 #1 #2 和#5 你自己(或使用图书馆)。

标签: android tabs android-viewpager


【解决方案1】:

你不需要构建一个与 ActionBar 捆绑的 ViewPager,它们都是独立的视图。

您可以简单地隐藏该活动上的 ActionBar,执行以下操作:

ActionBar mActionBar = activity.getActionBar();
mActionBar.hide();

虽然这是一个丑陋的解决方案,但您可以这样做来测试您的代码。我建议在没有 ActionBar 的情况下向该特定 Activity 添加一个 Theme(类似于 Theme.Material.NoActionBar) - 不确定它是否是正确的主题名称,但你明白了。

不确定我是否相应地回答了您的问题,但如果没有,请向我们展示一些代码。

【讨论】:

    【解决方案2】:

    您只需添加一个带有分页器标签条的视图分页器。有很多例子。

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.main);
    
        FragmentManager fm = getSupportFragmentManager();
        fragmentPagerAdapter = new MyTabsPagerAdapter(
                fm, tabsArray);
    
        ViewPager mPager = (ViewPager) findViewById(R.id.pager);
        mPager.setAdapter(fragmentPagerAdapter);
    
    
    
    
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/default_screen_bg"
    android:minWidth="1000dp">
    
    put your image here
    
    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    
        <android.support.v4.view.PagerTabStrip
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:paddingBottom="4dp"
            android:paddingTop="4dp" />
    </android.support.v4.view.ViewPager>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-13
      • 1970-01-01
      相关资源
      最近更新 更多