欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?

程序员文章站 2021-12-03 09:00:04
XUI之TabBar指示器实现页面切换第一步:新建Fragment。如果不知道怎么加入XUI框架的,可以看我们一篇博客加入XUI框架过程还算详细,如果有什么问题可以问我。还是一样的,建议测试的时候自己先新建一个页面,或者项目,避免发生其他因素而导致实现结果不了。第一步:新建Fragment。因为我主要是起到测试作用,就用那个最简单的BlankFragment吧。如果找不到的话,如下图。......

如果不知道怎么加入XUI框架的,可以看我们一篇博客加入XUI框架
过程还算详细,如果有什么问题可以问我。还是一样的,建议测试的时候自己先新建一个页面,或者项目,避免发生其他因素而导致实现结果不了。

第一步:新建Fragment。

因为我主要是起到测试作用,就用那个最简单的BlankFragment吧。如果找不到的话,如下图。
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
记得创建的时候不要如下图红圈的地方,虽然选了也没事,就是删起来比较麻烦,不过上面那个勾不要取消掉哦,那样的话就没有xml文件了。
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
然后我们创建三个Fragment就行了,因为我这里用三个页面之间进行测试。
加入和删除如图中代码,
加入代码如下:

 @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }

XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
三个页面实现相同的操作了的话,然后我们就做最主要的部分了。

第二步:实现页面切换功能。

第一步:先在xml文件中加入如下组件。

xml代码如下

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.xuexiang.xui.widget.tabbar.EasyIndicator
        android:id="@+id/easy_indicator"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:indicator_bottom_line_color="#000000"
        app:indicator_height="60dp"
        app:indicator_line_color="#03DAC5"
        app:indicator_line_show="true"
        app:indicator_normal_color="#9C9C9C"
        app:indicator_select_textSize="16sp"
        app:indicator_selected_color="#03DAC5"
        app:indicator_textSize="14sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/view_pager1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="60dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/easy_indicator">

    </androidx.viewpager.widget.ViewPager>

</androidx.constraintlayout.widget.ConstraintLayout>

XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
下面是主要的一些属性的作用,主要的组件都说到了,如果还不熟悉可以去官网看,那个比较详细。
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
下面附上一张官网截图:
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
可以自己多多尝试一下,测试一下。
你也可以放到你写的属性上面,上面会有属性的解释,最主要是中文版的,如图。
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?

第二步,设置activity处代码。

因为为了大家看起来方便点,代码我就采取直接表达的方法,就没有把代码拆分了。
代码如下:

import android.os.Bundle;
import android.view.ViewGroup;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;

import com.xuexiang.xui.XUI;
import com.xuexiang.xui.widget.tabbar.EasyIndicator;

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

public class MainActivity extends AppCompatActivity {
    private List<Fragment> list;
    private String[] tab={"注册","快捷登录","密码登录"};
    private FragmentManager manager;
    private MyFragmentPageAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        XUI.initTheme(this);
        setContentView(R.layout.activity_main);
        list = new ArrayList<Fragment>();
        BlankFragment f1 = new BlankFragment();
        BlankFragment2 f2 = new BlankFragment2();
        BlankFragment3 f3=new BlankFragment3();
        list.add(f1);
        list.add(f3);
        list.add(f2);
        manager = getSupportFragmentManager();
        adapter = new MyFragmentPageAdapter(manager);
        EasyIndicator easyIndicator=findViewById(R.id.easy_indicator);
        easyIndicator.setTabTitles(tab);
        ViewPager viewPager=findViewById(R.id.view_pager1);
        easyIndicator.setViewPager(viewPager,adapter);
    }


    class MyFragmentPageAdapter extends FragmentPagerAdapter {

        public MyFragmentPageAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int arg0) {
            return list.get(arg0);
        }

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

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

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            super.destroyItem(container, position, object);
        }

    }

}

代码解析:
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
恭喜你,终于可以了。
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
如果有什么问题的话,可以评论或者私聊探讨了一下,因为每个人遇到的问题都不相同。

如果你琢磨的够仔细的话也可以实现下图功能。
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?

最后,分享一下配色和找矢量图的地方。

你是不是要配色不好看而苦恼呢,这可不是打广告,这个网站真的还不错,而且免费。Color Hunt,如图
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
矢量图的网站是:
阿里云矢量图,这个应该挺多人知道的。阿里云矢量图
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?

本文地址:https://blog.csdn.net/qq_45137584/article/details/110671330