电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android實現滑動標簽頁

瀏覽:4日期:2022-09-19 11:56:03

本文實例為大家分享了Android實現滑動標簽頁的具體代碼,供大家參考,具體內容如下

Android實現滑動標簽頁

TabLayoutActivity.java

package cn.edu.zufe.app0406;import androidx.appcompat.app.AppCompatActivity;import androidx.appcompat.widget.Toolbar;import androidx.fragment.app.Fragment;import androidx.fragment.app.FragmentPagerAdapter;import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;import androidx.viewpager.widget.ViewPager;import android.annotation.SuppressLint;import android.os.Bundle;import com.google.android.material.appbar.AppBarLayout;import com.google.android.material.tabs.TabLayout;import java.util.ArrayList;import java.util.List;import cn.edu.zufe.app0406.adapter.FragmentAdapter;public class TabLayoutActivity extends AppCompatActivity { private AppBarLayout abl; private Toolbar tbTool; private TabLayout tl; private ViewPager vp; private SwipeRefreshLayout srl; private List<Fragment> fragments = new ArrayList<>(); private FragmentAdapter fragmentAdapter; private void initViewPager() {List<String> titles = new ArrayList<>();titles.add('精選');titles.add('體育');titles.add('娛樂');titles.add('軍事');titles.add('美食');titles.add('旅游');titles.add('風景');for(int i=0; i<titles.size(); i++) { tl.addTab(tl.newTab().setText(titles.get(i)));}for(int i=0; i<titles.size(); i++) { fragments.add(new FruitFragment());}fragmentAdapter = new FragmentAdapter(getSupportFragmentManager(), FragmentPagerAdapter.BEHAVIOR_SET_USER_VISIBLE_HINT, fragments, titles);vp.setAdapter(fragmentAdapter);tl.setupWithViewPager(vp); } @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_tab_layout);abl = (AppBarLayout) findViewById(R.id.abl);tbTool = (Toolbar) findViewById(R.id.tb_tool);tl = (TabLayout) findViewById(R.id.tl);vp = (ViewPager) findViewById(R.id.vp);srl = (SwipeRefreshLayout) findViewById(R.id.srl);setSupportActionBar(tbTool);initViewPager();srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @SuppressLint('RestrictedApi') @Override public void onRefresh() {FruitFragment fragment = new FruitFragment();for(int i = 0; i < fragments.size(); i++) { fragment = (FruitFragment) fragments.get(i); if(fragment != null && fragment.isAdded() && fragment.isMenuVisible()) {break; }}fragment.refreshFruit();srl.setRefreshing(false); }}); }}

activity_tab_layout.xml

<?xml version='1.0' encoding='utf-8'?><androidx.coordinatorlayout.widget.CoordinatorLayout 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' android:orientation='vertical' tools:context='.TabLayoutActivity'> <com.google.android.material.appbar.AppBarLayoutandroid:layout_width='match_parent'android:layout_height='wrap_content'android: ><androidx.appcompat.widget.Toolbar android:layout_width='match_parent' android:layout_height='?attr/actionBarSize' app:layout_scrollFlags='scroll|enterAlways' android: /><com.google.android.material.tabs.TabLayout android:layout_width='match_parent' android:layout_height='wrap_content' android: app:tabMode='scrollable' /> </com.google.android.material.appbar.AppBarLayout> <androidx.swiperefreshlayout.widget.SwipeRefreshLayoutandroid:layout_width='match_parent'android:layout_height='match_parent'app:layout_behavior='@string/appbar_scrolling_view_behavior'android: ><androidx.viewpager.widget.ViewPager android:layout_width='match_parent' android:layout_height='match_parent' android: ></androidx.viewpager.widget.ViewPager> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout></androidx.coordinatorlayout.widget.CoordinatorLayout>

FruitAdapter.java

package cn.edu.zufe.app0406.adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import androidx.annotation.NonNull;import androidx.recyclerview.widget.RecyclerView;import com.bumptech.glide.Glide;import com.google.android.material.card.MaterialCardView;import java.util.List;import cn.edu.zufe.app0406.R;import cn.edu.zufe.app0406.bean.Fruit;public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> { private Context mContext; private List<Fruit> mFruitList; public FruitAdapter(List<Fruit> mFruitList) {this.mFruitList = mFruitList; } static class ViewHolder extends RecyclerView.ViewHolder {private MaterialCardView cardView;private ImageView ivFruit;private TextView tvFruit;public ViewHolder(@NonNull View itemView) { super(itemView); cardView = (MaterialCardView) itemView; ivFruit = (ImageView) cardView.findViewById(R.id.iv_fruit); tvFruit = (TextView) cardView.findViewById(R.id.tv_fruit);} } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {if(mContext == null) { mContext = parent.getContext();}View view = LayoutInflater.from(mContext).inflate(R.layout.card_info_item, parent, false);return new ViewHolder(view); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) {Fruit fruit = mFruitList.get(position);holder.tvFruit.setText(fruit.getName());Glide.with(mContext).load(fruit.getImageUrl()).into(holder.ivFruit); } @Override public int getItemCount() {return mFruitList.size(); }}

FragmentAdapter.java

package cn.edu.zufe.app0406.adapter;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.fragment.app.Fragment;import androidx.fragment.app.FragmentManager;import androidx.fragment.app.FragmentPagerAdapter;import java.util.List;public class FragmentAdapter extends FragmentPagerAdapter { private List<Fragment> fragments; private List<String> titles; public FragmentAdapter(@NonNull FragmentManager fm, int behavior, List<Fragment> fragments, List<String> titles) {super(fm, behavior);this.fragments = fragments;this.titles = titles; } @Nullable @Override public CharSequence getPageTitle(int position) {return titles.get(position); } @NonNull @Override public Fragment getItem(int position) {return fragments.get(position); } @Override public int getCount() {return fragments.size(); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 哈尔滨京科脑康神经内科医院-哈尔滨治疗头痛医院-哈尔滨治疗癫痫康复医院 | 不锈钢/气体/液体玻璃转子流量计(防腐,选型,规格)-常州天晟热工仪表有限公司【官网】 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 行业分析:提及郑州火车站附近真有 特殊按摩 ?2025实地踩坑指南 新手如何避坑不踩雷 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 整车VOC采样环境舱-甲醛VOC预处理舱-多舱法VOC检测环境仓-上海科绿特科技仪器有限公司 | 航空连接器,航空插头,航空插座,航空接插件,航插_深圳鸿万科 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 无线遥控更衣吊篮_IC卡更衣吊篮_电动更衣吊篮配件_煤矿更衣吊篮-力得电子 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 皮带机_移动皮带机_大倾角皮带机_皮带机厂家 - 新乡市国盛机械设备有限公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 地埋式垃圾站厂家【佳星环保】小区压缩垃圾中转站转运站 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 亮化工程,亮化设计,城市亮化工程,亮化资质合作,长沙亮化照明,杰奥思【官网】 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 尚为传动-专业高精密蜗轮蜗杆,双导程蜗轮蜗杆,蜗轮蜗杆减速机,蜗杆减速机生产厂家 | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 大巴租车平台承接包车,通勤班车,巴士租赁业务 - 鸿鸣巴士 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 酒店厨房设计_中央厨房设计_北京商用厨房设计公司-奇能商厨 | 加中寰球移民官网-美国移民公司,移民机构,移民中介,移民咨询,投资移民 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 乳化沥青设备_改性沥青设备_沥青加温罐_德州市昊通路桥工程有限公司 | 收录网| 翅片管换热器「型号全」_厂家-淄博鑫科环保 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 |