You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
5.0 KiB

package com.example.ChatContentPkg;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.example.ChatContentPkg.RecyclerViewFragment;
import com.example.cmknowledgegraph.R;
import com.github.florent37.materialviewpager.MaterialViewPager;
import com.github.florent37.materialviewpager.header.HeaderDesign;
public class ChatContent extends Fragment{
AppCompatActivity appCompatActivity;//获取到Activity
public AppCompatActivity getAppCompatActivity() {
return appCompatActivity;
}
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//要加载的layout文件
return inflater.inflate(R.layout.activity_chat, container, false);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//包装处理逻辑
//得到MaterViewPager实例
MaterialViewPager materialViewPager = (MaterialViewPager) getActivity().findViewById(R.id.materialViewPager);
//为MaterialViewPager添加监听
materialViewPager.setMaterialViewPagerListener(new MaterialViewPager.Listener() {
@Override
//设置转换动画和图片,颜色
public HeaderDesign getHeaderDesign(int page) {
switch (page){
case 0:
return HeaderDesign.fromColorResAndDrawable(
R.color.blue,
getResources().getDrawable(R.drawable.draw5)
);
case 1:
return HeaderDesign.fromColorResAndDrawable(
R.color.green,
getResources().getDrawable(R.drawable.draw6)
);
case 2:
return HeaderDesign.fromColorResAndDrawable(
R.color.cyan,
getResources().getDrawable(R.drawable.draw7)
);
}
return null;
}
});
//设置Toolbar
Toolbar toolbar = materialViewPager.getToolbar();
AppCompatActivity ap = getAppCompatActivity();
if(toolbar!=null){
ap.setSupportActionBar(toolbar);
ActionBar actionBar = ap.getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setHomeButtonEnabled(true);
}
//为Viewpager设置适配器
ViewPager viewPager = materialViewPager.getViewPager();
viewPager.setAdapter(new FragmentStatePagerAdapter(getChildFragmentManager()) {
@NonNull
@Override
public Fragment getItem(int position) {
switch (position % 3){
case 0:
return RecyclerViewFragment.newInstance(0,appCompatActivity);
case 1:
return RecyclerViewFragment.newInstance(1,appCompatActivity);
case 2:
return DrugFriendsFragment.newInstance(appCompatActivity);
default:
return RecyclerViewFragment.newInstance(1,appCompatActivity);
}
}
@Override
public int getCount() {
return 3;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
switch (position % 3){
case 0:
return "论坛";
case 1:
return "drug";
case 2:
return "药友";
default:
return "TAPN";
}
}
});
materialViewPager.getViewPager().setOffscreenPageLimit(materialViewPager
.getViewPager().getAdapter().getCount());
materialViewPager.getPagerTitleStrip().setViewPager(materialViewPager.getViewPager());
}
@Override
public void onResume() {
super.onResume();
}
}