国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android ViewPager + Fragment實現滑動頁面效果

2019-10-22 18:10:11
字體:
來源:轉載
供稿:網友

效果:

Android,ViewPager,Fragment,滑動頁面

PagerData類:

package com.cloud.viewpagerdemo;import java.io.Serializable;class PagerData implements Serializable {  private int mImageResId;  private String mContent;  PagerData(int imageResId, String content) {    mImageResId = imageResId;    mContent = content;  }  public int getImageResId() {    return mImageResId;  }  public void setImageResId(int imageResId) {    mImageResId = imageResId;  }  public String getContent() {    return mContent;  }  public void setContent(String content) {    mContent = content;  }}

PagerFragment類:

package com.cloud.viewpagerdemo;import android.graphics.Outline;import android.os.Bundle;import android.support.annotation.NonNull;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.ViewOutlineProvider;import android.widget.ImageView;import android.widget.TextView;public class PagerFragment extends Fragment {  private static final String ARG_DATA = "data";  private PagerData mData;  private ImageView mImageView;  private TextView mContent;  /**   * 通過靜態方法獲取Fragment實例,向Fragment傳參數   * @param data 數據   * @return Fragment   */  public static PagerFragment newInstance(PagerData data) {    PagerFragment fragment = new PagerFragment();    //使用FragmentArguments傳遞參數    Bundle args = new Bundle();    args.putSerializable(ARG_DATA, data);    fragment.setArguments(args);    return fragment;  }  @Override  public void onCreate(@Nullable Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    mData = (PagerData) getArguments().getSerializable(ARG_DATA);  }  @Nullable  @Override  public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,               @Nullable Bundle savedInstanceState) {    View view = inflater.inflate(R.layout.fragment_pager, container, false);    //綁定控件    mImageView = view.findViewById(R.id.image_view);    mContent = view.findViewById(R.id.text_content);    //ImageView設置圓角    ViewOutlineProvider viewOutlineProvider = new ViewOutlineProvider() {      @Override      public void getOutline(View view, Outline outline) {        outline.setRoundRect(0, 0, mImageView.getWidth(), mImageView.getHeight(), 16);      }    };    mImageView.setOutlineProvider(viewOutlineProvider);    mImageView.setClipToOutline(true);    mImageView.setImageResource(mData.getImageResId());    mContent.setText(mData.getContent());    return view;  }}

PagerActivity:

 

package com.cloud.viewpagerdemo;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentStatePagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;import java.util.ArrayList;import java.util.List;public class PagerActivity extends AppCompatActivity {  private List<PagerData> mPagerData = new ArrayList<>();  private ViewPager mViewPager;  private TextView mTextPage;  private String page = "1 / 3";  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_pager);    initData();    FragmentManager fragmentManager = getSupportFragmentManager();    mViewPager = findViewById(R.id.view_pager);    mTextPage = findViewById(R.id.text_page);    //設置ViewPager適配器    mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {      @Override      public Fragment getItem(int position) {        return PagerFragment.newInstance(mPagerData.get(position));      }      @Override      public int getCount() {        return mPagerData.size();      }    });    //監聽頁面改變    mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {      @Override      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {      }      @Override      public void onPageSelected(int position) {        //頁面選中        page = String.valueOf(position + 1) + " / " + String.valueOf(mPagerData.size());        mTextPage.setText(page);      }      @Override      public void onPageScrollStateChanged(int state) {      }    });    //設置緩存頁數    mViewPager.setOffscreenPageLimit(3);    //設置默認頁    mViewPager.setCurrentItem(0);    mTextPage.setText(page);  }  private void initData() {    //添加三項數據    mPagerData.add(new PagerData(R.drawable.img_0, "Photo by Adam Krowitz"));    mPagerData.add(new PagerData(R.drawable.img_1, "Photo by Samuel Ferrara"));    mPagerData.add(new PagerData(R.drawable.img_2, "Photo by Earth"));  }}

fragment_pager:

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.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">  <LinearLayout    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_marginBottom="32dp"    android:layout_marginEnd="16dp"    android:layout_marginStart="16dp"    android:layout_marginTop="16dp"    android:background="@drawable/pager_background"    android:elevation="4dp"    android:orientation="vertical"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toTopOf="parent">    <ImageView      android:id="@+id/image_view"      android:layout_width="match_parent"      android:layout_height="0dp"      android:layout_margin="8dp"      android:layout_weight="1"      android:contentDescription="@null"      android:scaleType="centerCrop" />    <TextView      android:id="@+id/text_content"      android:layout_width="match_parent"      android:layout_height="125dp"      android:gravity="center"      android:padding="8dp"      android:textSize="18sp"      android:textColor="#000000"      tools:text="Content" />  </LinearLayout></android.support.constraint.ConstraintLayout>

activity_pager:

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.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=".PagerActivity">  <android.support.v7.widget.Toolbar    android:id="@+id/toolbar"    android:layout_width="match_parent"    android:layout_height="48dp"    android:background="@color/colorPrimary"    android:elevation="4dp"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toTopOf="parent">    <TextView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_gravity="center"      android:textSize="18sp"      android:textColor="#FFFFFF"      android:text="@string/app_name" />  </android.support.v7.widget.Toolbar>  <android.support.v4.view.ViewPager    android:id="@+id/view_pager"    android:layout_width="0dp"    android:layout_height="0dp"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toBottomOf="@+id/toolbar">  </android.support.v4.view.ViewPager>  <TextView    android:id="@+id/text_page"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginBottom="4dp"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintStart_toStartOf="@+id/toolbar"    tools:text="page" /></android.support.constraint.ConstraintLayout>

總結

以上所述是小編給大家介紹的Android ViewPager + Fragment實現滑動頁面效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉木萨尔县| 博湖县| 呼伦贝尔市| 健康| 科技| 碌曲县| 仙游县| 哈密市| 苍南县| 西乌珠穆沁旗| 忻州市| 卢氏县| 密山市| 陈巴尔虎旗| 洞口县| 赣州市| 锡林浩特市| 仁寿县| 商河县| 新源县| 夏津县| 甘肃省| 阿拉善盟| 丹寨县| 山东| 定州市| 内黄县| 湛江市| 云梦县| 深圳市| 姚安县| 金川县| 白玉县| 双峰县| 新安县| 高清| 麟游县| 于田县| 云南省| 舞阳县| 郸城县|