返回介绍

四 - APP 主页框架 TabHost 绑定 ViewPager 的替换者 TabLayout

发布于 2025-02-28 12:56:41 字数 3285 浏览 0 评论 0 收藏 0

现在很多 app 都在追求简单明了,功能又要强大,不过我还是喜欢之前的 app 风格,就是 TabHost,在现在也是有许多 app 在用,不过选项卡可能都放在下面了,我们想要 tabhost 有 viewpager 的滑动效果,其实也很简单,那就是 fragment,在这之前,我都是很复杂的把它们全部绑定在一起联动的,但是现在就要简单很多了 ,我们用 Android Studio 开发

先看下效果图吧

我们这次使用到的是 TabLayout

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <android.support.design.widget.TabLayout
    android:id="@+id/id_tab_layout"
    android:background="#ffffff"
    app:tabGravity="fill"
    app:tabMode="fixed"
    app:tabIndicatorColor="#0ddcff"
    app:tabTextColor="#000000"
    app:tabSelectedTextColor="#0ddcff"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
  </android.support.design.widget.TabLayout>

  <android.support.v4.view.ViewPager
    android:id="@+id/id_view_pager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
  </android.support.v4.view.ViewPager>

</LinearLayout>

MainActivity

package com.app.gaohailong.festivalmessage;

import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
  private TabLayout mTablayout;
  private ViewPager mViewPager;
  private String[] mTitles = new String[]{"节日短信", "发送记录", "个人设置"};
  private List<Fragment> mFragments;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initViews();
  }

  private void initViews() {
    //初始化 View
    mTablayout = (TabLayout) findViewById(R.id.id_tab_layout);
    mViewPager = (ViewPager) findViewById(R.id.id_view_pager);

    //初始化 List<Fragment>
    mFragments = new ArrayList<>();
    Fragment mFestivalFragment = new FestivalFragment();
    Fragment mRecordFragment = new RecordFragment();
    Fragment myFragment = new MyFragment();
    mFragments.add(mFestivalFragment);
    mFragments.add(mRecordFragment);
    mFragments.add(myFragment);

    //给 ViewPage 设置 Adapter
    mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
      @Override
      public Fragment getItem(int position) {
        return mFragments.get(position);
      }

      @Override
      public int getCount() {
        return mFragments.size();
      }

      @Override
      public CharSequence getPageTitle(int position) {
        return mTitles[position];
      }
    });

    mTablayout.setupWithViewPager(mViewPager);
  }
}
记得添加源
  compile 'com.android.support:design:23.1.1'
这样就可以了,是不是非常的简单?你也可以去试试呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文