需要重写 getPageTitle 方法
1.PageAdapter
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import java.util.List;
/**
* des : TabLayout 对应的viewPage的Adapter
*
* @author : lsw
* data : 2020-08-19 9:22
*/
public class MainPagerAdapter extends FragmentPagerAdapter {
private final String[] tabs;
private List<Fragment> mList;
public MainPagerAdapter(FragmentManager fm, List<Fragment> list, String[] titleArray) {
super(fm);
this.mList = list;
this.tabs = titleArray;
}
@Override
public Fragment getItem(int position) {
return this.mList == null ? null : this.mList.get(position);
}
/**
* 必须重写此方法 ,否则 tablayout的title 不显示
* @param position
* @return
*/
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return tabs[position];
}
@Override
public int getCount() {
return this.mList == null ? 0 : this.mList.size();
}
}
代码
<com.google.android.material.tabs.TabLayout
android:id="@+id/tl"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_gravity="center_horizontal"
android:layout_marginStart="13dp"
android:layout_marginEnd="13dp"
app:tabIndicatorFullWidth="false"
app:tabIndicatorHeight="2dp"
app:tabMode="scrollable"
app:tabSelectedTextColor="@color/colorPrimaryDark"
app:tabTextAppearance="@style/TabLayoutTextStyle"
android:visibility="visible"
android:layout_centerInParent="true"
app:tabTextColor="@color/black" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/fragment_vp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2 XML布局文件
<com.google.android.material.tabs.TabLayout
android:id="@+id/tl"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_gravity="center_horizontal"
android:layout_marginStart="13dp"
android:layout_marginEnd="13dp"
app:tabIndicatorFullWidth="false"
app:tabIndicatorHeight="2dp"
app:tabMode="scrollable"
app:tabSelectedTextColor="@color/colorPrimaryDark"
app:tabTextAppearance="@style/TabLayoutTextStyle"
android:visibility="visible"
android:layout_centerInParent="true"
app:tabTextColor="@color/black" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/fragment_vp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
3. 页面代码
/**
* 主界面界面
*/
public class CustomerFragment extends Fragment implements View.OnClickListener {
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_SHOW_TEXT = "text";
private String mContentText;
private MaterialDialog dialog;
private CustomPopWindow phonePop;
private String phone;
private View contentView;
private SharedPreferencesUtils spUtils;
private List<List<Object>> allowed_companies;
private View rootView;
private FragmentCustomerBinding mBinding;
private CustomPopWindow selectPop;
private CustomPopWindow sortPop;
String[] titleArray = new String[]{"全部","完成","已提交","已处理","草稿","取消"};
List mFragments = new ArrayList<Fragment>();
public CustomerFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @return A new instance of fragment BlankFragment.
*/
public static CustomerFragment newInstance(String param1) {
CustomerFragment fragment = new CustomerFragment();
Bundle args = new Bundle();
args.putString(ARG_SHOW_TEXT, param1);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mContentText = getArguments().getString(ARG_SHOW_TEXT);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_customer, container, false);
rootView = mBinding.getRoot();
mBinding.titleTop.tvTitle.setText("客户");
mBinding.titleTop.ivHead.setBackgroundResource(R.mipmap.ic_launcher);
mBinding.titleTop.ivHead.setOnClickListener(this);
mBinding.titleTop.ivRight.setOnClickListener(this);
mBinding.searchTop.etCheckSearch.setHint("请输入关键词搜索");
mBinding.searchTop.ivClearEtcontent.setOnClickListener(this);
mBinding.tvSort.setOnClickListener(this);
mBinding.tvSelect.setOnClickListener(this);
for (String title : titleArray) {
mBinding.tl.addTab(mBinding.tl.newTab().setText(title));
mFragments.add(new TabFrag(title));
}
MainPagerAdapter adapter = new MainPagerAdapter(getChildFragmentManager(),mFragments,titleArray);
mBinding.fragmentVp.setAdapter(adapter);
mBinding.fragmentVp.setOffscreenPageLimit(3);
mBinding.tl.setupWithViewPager(mBinding.fragmentVp);
//
mBinding.searchTop.etCheckSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
if (id == EditorInfo.IME_ACTION_SEARCH) {
String searchContent = mBinding.searchTop.etCheckSearch.getText().toString().trim();
ToastUtils.showShort("搜索客户");
return true;
}
return false;
}
});
// spUtils = SharedPreferencesUtils.getInstance(getActivity().getApplicationContext());
return rootView;
}
}