直播平臺原始碼,頂部標籤欄及內容列表的設計與實現

zhibo系統開發發表於2022-12-16

直播平臺原始碼,頂部標籤欄及內容列表的設計與實現

1、主頁面新增ViewPager控制元件

activity_main.xml

<LinearLayout xmlns:android="
    xmlns:app="
    xmlns:tools="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
<!--  翻頁檢視-->
    <androidx.viewpager.widget.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
        
</LinearLayout>


2、建立介面卡繼承FragmentPagerAdapter

在介面卡類中建立構造方法,傳入FragmentManager物件及放入ViewPager的Fragment物件集合

MyAdapter.java

public class MyAdapter extends FragmentPagerAdapter {
    private List<Fragment> fragmentList;
    public MyAdapter(@NonNull FragmentManager fm, List<Fragment> list) {
        super(fm);
        this.fragmentList=list;
    }
    //獲取當前滑動到fragment物件
    @NonNull
    @Override
    public Fragment getItem(int position) {
        return fragmentList.get(position);
    }
    //獲取fragment個數
    @Override
    public int getCount() {
        return fragmentList.size();
    }
}


3、為ViewPager物件設定介面卡

準備Fragment集合

建立MyAdapter介面卡

MainActivity.java

public class MainActivity extends AppCompatActivity {
    private ViewPager viewPager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager=findViewById(R.id.viewpager);
        //準備fragment集合
        List<Fragment> list=new ArrayList<>();
        list.add(new Fragment1());
        list.add(new Fragment2());
        list.add(new Fragment3());
        //建立MyAdapter物件
        MyAdapter myAdapter=new MyAdapter(getSupportFragmentManager(),list);
        //設定Adapter
        viewPager.setAdapter(myAdapter);
    }
}


4、設定ViewPager監聽

onPageScrolled()方法在頁面滑動時呼叫,在滑動停止之前,會一直呼叫此方法,第一個引數為當前頁面,即單機滑動的頁面,第二個引數是當前頁面偏移的百分比,第三個引數是當前頁面便宜的畫素的位置

onPageSelected()方法在頁面滑動結束後呼叫,引數position是當前選中頁面的位置

onPageScrollStateChanged()方法在頁面滑動狀態改變時呼叫,引數state有3個值;SCROLL_STATE_DRAGCING表示使用者手指按在螢幕上並且開始拖動的狀態、SCROLL_STATE_IDLE表示滑動動畫做完的狀態、SCROLL_STATE_SETTLING表示手指離開螢幕的狀態。

        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                //頁面滑動呼叫此方法
            }
            @Override
            public void onPageSelected(int position) {
                //滑動到某個頁面呼叫此方法
  Toast.makeText(MainActivity.this, "這是第"+(position+1)+"個fragment", Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onPageScrollStateChanged(int state) {
                //頁面滾動狀態發生變化呼叫此方法
            }
        });


 以上就是 直播平臺原始碼,頂部標籤欄及內容列表的設計與實現,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2928381/,如需轉載,請註明出處,否則將追究法律責任。

相關文章