最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Android 絲滑切換展示頁的ViewPager最簡單用法

2023-06-22 02:33 作者:翼618  | 我要投稿


網(wǎng)上帖子都狠復(fù)雜,我整個(gè)最簡單的,能用就好,希望能幫到大家:

用到的類列表如下,用到的具體都貼出來了,根據(jù)需要直接拿走改把。

A_LogInActivity (需要添加控件的對(duì)應(yīng)類)

activity_a__log_in (就布局,我這里就添加了一個(gè)ViewPager 下面貼出來了,直接拷走)

PagerAdapater (ViewPager用到的具體類,對(duì)應(yīng)的東西在里面改也行,傳出去也行)

item_launch(ViewPager用到的最簡單布局)




首先是用到的xml

這個(gè)放到對(duì)應(yīng)的activity的xml布局里面


? ? <android.support.v4.view.ViewPager

? ? ? ? android:id="@+id/vp_content"

? ? ? ? android:layout_width="match_parent"

? ? ? ? android:layout_height="300dp" />


----------------------我是分割線-------------------------------

然后 activity? ?具體代碼,紅色部分就是新的,你可以直接拷走用:


public class A_LogInActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener {


? ? private List<String> mStringList;


? ? @Override

? ? protected void onCreate(Bundle savedInstanceState) {

? ? ? ? super.onCreate(savedInstanceState);

? ? ? ? setContentView(R.layout.activity_a__log_in);


? ? ? ? mStringList =? new ArrayList<>();

? ? ? ? mStringList.add("1");

? ? ? ? mStringList.add("2");// 這個(gè)隨便弄 我改成要不要都行,一般都會(huì)動(dòng)態(tài)創(chuàng)建就是了


? ? ? ? // 構(gòu)建一個(gè)商品圖片的翻頁適配器

? ? ? ? PagerAdapater adapter = new PagerAdapater(this, mStringList);

? ? ? ? // 從布局視圖中獲取名叫vp_content的翻頁視圖

? ? ? ? ViewPager vp_content = (ViewPager) findViewById(R.id.vp_content);

? ? ? ? vp_content.setAdapter(adapter); // 設(shè)置翻頁視圖的適配器

? ? ? ? vp_content.setCurrentItem(0); // 設(shè)置翻頁視圖顯示第一頁? 切換頁面可以用這個(gè)方法

? ? ? ? vp_content.addOnPageChangeListener(this); // 給翻頁視圖添加頁面變更監(jiān)聽器


? ? }


? ? // 翻頁狀態(tài)改變時(shí)觸發(fā)。state取值說明為:0表示靜止,1表示正在滑動(dòng),2表示滑動(dòng)完畢

? ? // 在翻頁過程中,狀態(tài)值變化依次為:正在滑動(dòng)→滑動(dòng)完畢→靜止

? ? public void onPageScrollStateChanged(int state) {}


? ? // 在翻頁過程中觸發(fā)。該方法的三個(gè)參數(shù)取值說明為 :第一個(gè)參數(shù)表示當(dāng)前頁面的序號(hào)

? ? // 第二個(gè)參數(shù)表示頁面偏移的百分比,取值為0到1;第三個(gè)參數(shù)表示頁面的偏移距離

? ? public void onPageScrolled(int position, float ratio, int offset) {}


? ? // 在翻頁結(jié)束后觸發(fā)。position表示當(dāng)前滑到了哪一個(gè)頁面

? ? public void onPageSelected(int position) {

? ? ? ? Toast.makeText(this, "測(cè)試滑動(dòng):" + mGoodsList.get(position), Toast.LENGTH_SHORT).show();

? ? }


}

----------------------我是分割線-------------------------------

然后是 PagerAdapater的內(nèi)容,整個(gè)直接挪走改吧:



? ? public class PagerAdapater extends PagerAdapter {

? ? // 聲明一個(gè)視圖列表

? ? private List<View> mViewList = new ArrayList<View>();

? ? // 這個(gè)值沒用了

? ? private List<String> stringList = new ArrayList<String>();


? ? // 圖像翻頁適配器的構(gòu)造方法,可以根據(jù)傳入的list來創(chuàng)建多少個(gè)頁面 我這里沒用到 只留下個(gè)寫法

? ? public PagerAdapater(Context context, List<String> stringList) {

? ? ? ? stringList = stringList;

? ? ? ? /**

? ? ? ? ?* 第一個(gè)頁面

? ? ? ? ?* item_launch 這個(gè)是我新建的xml頁面 里面就一個(gè)按鈕,你完全可以自己隨意新建隨意改

? ? ? ? ?*/

? ? ? ? View LiView = LayoutInflater.from(context).inflate(R.layout.item_launch, null);

? ? ? ? ?// 將對(duì)應(yīng)的布局添加進(jìn)去? add幾次就會(huì)有幾個(gè)頁面?。。∫獛讉€(gè)頁面就只管加

? ? ? ? mViewList.add(LiView);

? ? ? ? Button btn_start = LiView.findViewById(R.id.btn_start);



? ? ? ? /**

? ? ? ? ?* 第一個(gè)頁面

? ? ? ? ?*/

? ? ? ? View LiView1 = LayoutInflater.from(context).inflate(R.layout.item_launch1, null);

? ? ? ? mViewList.add(LiView1); // 將對(duì)應(yīng)的布局添加進(jìn)去

? ? ? ? Button btn_start2 = LiView1.findViewById(R.id.btn_start);

? ? }


? ? // 獲取頁面項(xiàng)的個(gè)數(shù)

? ? public int getCount() {

? ? ? ? return mViewList.size();

? ? }


? ? // 判斷當(dāng)前視圖是否來自指定對(duì)象

? ? public boolean isViewFromObject(View view, Object object) {

? ? ? ? return view == object;

? ? }


? ? // 從容器中銷毀指定位置的頁面

? ? public void destroyItem(ViewGroup container, int position, Object object) {

? ? ? ? container.removeView(mViewList.get(position));

? ? }


? ? // 實(shí)例化指定位置的頁面,并將其添加到容器中

? ? public Object instantiateItem(ViewGroup container, int position) {

? ? ? ? container.addView(mViewList.get(position));

? ? ? ? return mViewList.get(position);

? ? }


? ? // 獲得指定頁面的標(biāo)題文本

? ? public CharSequence getPageTitle(int position) {

? ? ? ? return mGoodsList.get(position);

? ? }

}

----------------------我是分割線-------------------------------

對(duì)應(yīng)的Adapater用到的xml

這個(gè)可以隨便改,隨便創(chuàng)建,自己把名字對(duì)應(yīng)上就好?

item_launch

item_launch1 兩個(gè)XML我這里一樣的內(nèi)容? 根據(jù)自己需要直接改吧

單純就一個(gè)button,不加太多復(fù)雜的東西了


<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

? ? android:layout_width="match_parent"

? ? android:layout_height="match_parent"

? ? android:orientation="vertical">


? ? <Button

? ? ? ? android:layout_gravity="center_horizontal"

? ? ? ? android:id="@+id/btn_start"

? ? ? ? android:layout_width="300dp"

? ? ? ? android:layout_height="45dp"

? ? ? ? android:text="登錄"

? ? ? ? ?/>

</LinearLayout>

----------------------我是分割線-------------------------------

附上兩張我修改好的頁面截圖,根據(jù)上面代碼你應(yīng)該能得到一個(gè)滑動(dòng)切換的ViewPager

如果要像我一樣點(diǎn)擊切換就用

?vp_content.setCurrentItem(0);?

方法參數(shù)代表第幾個(gè)頁面。

頁面1
頁面2



Android 絲滑切換展示頁的ViewPager最簡單用法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
马尔康县| 麻城市| 广东省| 凤阳县| 抚松县| 牙克石市| 岗巴县| 江山市| 景谷| 临海市| 塔河县| 田阳县| 五台县| 梁山县| 大安市| 平远县| 莲花县| 正安县| 阜平县| 临颍县| 兴仁县| 天气| 平江县| 开远市| 桂平市| 文安县| 江西省| 天祝| 浮山县| 广灵县| 海宁市| 集安市| 陇西县| 岳池县| 双流县| 读书| 德江县| 洞口县| 华安县| 沈阳市| 马龙县|