TabLayout+ViewPager+Fragment联合使用
来源:互联网 发布:java发送icmp 编辑:程序博客网 时间:2024/06/14 16:27
主页面布局
添加Tablayout和ViewPager两个控件
1.添加依赖库(根据自己依赖库修改)
- compile ‘com.android.support:support-v4:24.1.0’
- compile ‘com.android.support:design:24.0.0’
2.xml布局(文章最后提供自定义Tablayout属性)
<?xml version="1.0" encoding="utf-8"?><LinearLayout android:id="@+id/activity_main" 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:orientation="vertical" tools:context="com.kevinyang.tablayout_viewpager.MainActivity"> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content"/> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>
3.主页代码
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); //设置Adapter if (viewPager != null) { setupViewPager(viewPager); } //tablayout滚动模式,要标签数量够多,不然标签会靠左显示 tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); //设置tablayout的viewpager tabLayout.setupWithViewPager(viewPager); } private void setupViewPager(ViewPager viewPager) { //创建Fragment的集合,和tatlyout的title的名称集合 ArrayList<Fragment> mFragmentList = new ArrayList<>(); ArrayList<String> mTitleList = new ArrayList<>(); //可以固定,可以网络请求添加进集合 mTitleList.add("标签 一"); mTitleList.add("标签 二"); mTitleList.add("标签 三"); mFragmentList.add(new MyFrament()); mFragmentList.add(new MyFrament()); mFragmentList.add(new MyFrament()); MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), mFragmentList,mTitleList); viewPager.setAdapter(adapter); } //适配FragmentPagerAdapter static class MyFragmentPagerAdapter extends FragmentPagerAdapter { private List<?> mFragment; private List<String> mTitleList; /** * 普通使用 */ public MyFragmentPagerAdapter(FragmentManager fm, List<?> mFragment) { super(fm); this.mFragment = mFragment; } /** * 接收标题使用 */ public MyFragmentPagerAdapter(FragmentManager fm, List<?> mFragment, List<String> mTitleList) { super(fm); this.mFragment = mFragment; this.mTitleList = mTitleList; } @Override public Fragment getItem(int position) { return (Fragment) mFragment.get(position); } @Override public int getCount() { return mFragment.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { super.destroyItem(container, position, object); } //设置tablayout的title @Override public CharSequence getPageTitle(int position) { if (mTitleList != null) { return mTitleList.get(position); } else { return ""; } } }}
4.自己添加Frament
public class MyFrament extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { TextView view = new TextView(getContext()); view.setText("HelloWorld!"); return view; }}
示例图
5.TabLayout的属性设置
1.改变选中字体的颜色
app:tabSelectedTextColor=”@android:color/light”
2.改变未选中字体的颜色
app:tabTextColor=”@color/colorPrimary”
3.改变指示器下标的颜色
app:tabIndicatorColor=”@android:color/light”
4.改变整个TabLayout的颜色
app:tabBackground=”color”
5.改变TabLayout内部字体大小
app:tabTextAppearance=”@android:style/TextAppearance.Holo.Large”//设置文字的外貌
6.改变指示器下标的高度
app:tabIndicatorHeight=”4dp”
7.添加图标
tabLayout.addTab(tabLayout.newTab().setText(“Tab1”).setIcon(R.mipmap.ic_launcher));
8.Tablayout滑动
* app:tabMode=”scrollable”
9.设置Tab内部的子控件的Padding
app:tabPadding=”xxdp”
app:tabPaddingTop=”xxdp”
app:tabPaddingStart=”xxdp”
app:tabPaddingEnd=”xxdp”
app:tabPaddingBottom=”xxdp”
10.设置整个TabLayout的Padding:
app:paddingEnd=”xxdp”
app:paddingStart=”xxdp”
11.内容的显示模式
app:tabGravity=”center”//居中,如果是fill,则是充满
12.设置最大的tab宽度:
app:tabMaxWidth=”xxdp”
13.设置最小的tab宽度:
app:tabMinWidth=”xxdp”
14.TabLayout开始位置的偏移量:
app:tabContentStart=”100dp”
- TabLayout+Fragment+ViewPager联合使用
- ViewPager+Fragment+TabLayout联合使用
- TabLayout+ViewPager+Fragment联合使用
- TabLayout联合Fragment使用
- Fragment+ViewPager+TabLayout 使用
- Android中的ViewPager、Fragment、TabLayout三者联合使用(将Fragment放置于ViewPager中)
- TabLayout的简单使用(TabLayout+Fragment+ViewPager)
- TabLayout,ViewPager,Fragment结合使用
- TabLayout/ViewPager/Fragment结合使用
- TabLayout与ViewPager的联合使用
- TabLayout 和 ViewPager的联合使用
- NavigationView+ToolBar+TabLayout+ViewPager+Fragment综合使用
- 整理TabLayout+ViewPager+Fragment的使用
- TabLayout+Fragment+ViewPager的标题滑动使用
- ViewPager + Fragment + TabLayout
- TabLayout 实现ViewPager+fragment
- TabLayout ViewPager 复用Fragment
- Tablayout+ViewPager+Fragment(Android)
- 年后找工作必看,这样的简历才能打动HR!
- 119.hdu--2111--Saving HDU
- java企业网站源码,模版,有前后台,springmvcSSM,freemaker
- zoj D friends (脑洞+队列)
- 图的遍历BFS
- TabLayout+ViewPager+Fragment联合使用
- httpd.ini伪静态实现不带www域名自动跳转到带www域名
- 死锁问题
- Ubuntu配置C++开发环境以及Vim的配置
- java 集合框架 List集合共性方法
- TCP协议通讯流程
- 解析Concurrent包下的ReentrantLock、LockSupport、AQS
- 阿里巴巴Java开发手册-异常日志-异常处理
- Android Material Design 史上最全的材料设计控件大全