av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

Android實現滑動標簽頁

瀏覽:3日期: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
相關文章:
主站蜘蛛池模板: 亚洲一区二区在线 | 超碰在线免费公开 | 一区二区播放 | 国产精品天堂 | 高清人人天天夜夜曰狠狠狠狠 | www.成人在线视频 | 国产精品观看 | 国产一区二区三区四区区 | 狠狠操狠狠色 | 在线免费91| 国产精品欧美一区二区 | 国产99久久精品一区二区永久免费 | 岛国av在线免费观看 | 天天草天天操 | 国产精品亚洲成在人线 | 亚洲精品欧美一区二区三区 | 国内精品视频一区二区三区 | av在线三级 | 国产日韩一区二区三区 | 亚洲 欧美 综合 | 国产一区二区成人 | 国产片侵犯亲女视频播放 | av色站| 国产精品色综合 | 一级黄色片一级黄色片 | 久久性色 | 国产激情精品视频 | 国产精品夜夜春夜夜爽久久电影 | 伊人激情综合网 | www.五月天婷婷.com | 99精品99 | 看av网| www日本在线 | 日韩精品一区二区三区老鸭窝 | 久久久精品一区二区三区 | 成人亚洲片 | 国产精品不卡一区 | 青久草视频 | 成人一区二区三区 | 美女视频黄的免费 | 亚洲社区在线 |