不懂的地方如下:
list.add(new Tab1Fragment());
list.add(new Tab2Fragment());
list.add(new Tab3Fragment());
這個Tab1Fragment()不清楚是什么,顯示紅色報錯,沒有這個東西。 這是我從網上其他博主那里借鑒來的,可能少了點東西 所以我不知道吧,其他地方大致都明白意義意思,就這一塊不大明白,導致不能運行出來,求解1 大家一起學習研究 共同進步
。1.這是一個類,我把配接器也寫在了里面。
public class MainActivity extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
//寫一個list集合,把每個頁面,就是Fragment,存進去
private List<Fragment> list;
private MyAdapter adapter;
private String[] titles={"頁面1","頁面2","頁面3","頁面4","頁面5","頁面6"};
//==============>
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//實體化
viewPager=findViewById(R.id.viewPage);
tabLayout=findViewById(R.id.tabLayout);
//頁面,資料源,里面是創建的三個頁面(Fragment)
list=new ArrayList<>();
list.add(new Tab1Fragment());
list.add(new Tab2Fragment());
list.add(new Tab3Fragment());
//viewPage的配接器,獲得Fragment管理器
adapter=new MyAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
//將viewPage和tabLayout系結在一起,一個動另一個也會跟著動
tabLayout.setupWithViewPager(viewPager);
}
//===============>創建Fragment的配接器
class MyAdapter extends FragmentPagerAdapter {
public MyAdapter( FragmentManager fm) {
super(fm);
}
//獲得每個頁面的下標
@NonNull
@Override
public Fragment getItem(int position) {
return list.get(position);
}
//獲得list的大小
@Override
public int getCount() {
return list.size();
}
//重寫這個方法,將設定每個tab的標題
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
}
}
2.這是布局
<LinearLayout
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"
>
<!--
tabIndicatorColor:Tab下面的橫線顏色
tabTextColor:tab默認的文字顏色
tabSelectedTextColor:選中的tab的字體顏色
tabMode:模式(Scrollable fixed).
其中的fixed模式需要和tabGravity屬性配合使用,
此時tabGravity屬性值為fill.
tabIndicatorHeight:設定tab底部的橫線高度.為0dp時,不顯示.
-->
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="40dp"
app:tabSelectedTextColor="#59D"
/>
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPage"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
uj5u.com熱心網友回復:
就是你寫的碎片(Fragment)啊。Fragment是一種可以嵌入在活動中的UI片段,能夠讓程式更加合理和充分地利用大螢屏的空間,出現的初衷是為了適應大螢屏的平板電腦,可以將其看成一個小型Activity,又稱作Activity片段。使用Fragment可以把螢屏劃分成幾塊,然后進行分組,進行一個模塊化管理。Fragment不能夠單獨使用,需要嵌套在Activity中使用。活動最終繼承Activity,碎片最終繼承Fragment轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/181359.html
標籤:Android
