今天进行了新闻各个分类的设计,主要是用技术是viewpage和tablayout。
通过使用viewpage和tablayout来实现各个分类之间的滑动。
import android.app.Activity;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import com.google.android.material.tabs.TabLayout;
public class TabLessActivity extends Fragment {
private TabLayout tabLayout = null;
private ViewPager viewPager;
private Fragment[] mFragmentArrays = new Fragment[9];
private String[] mTabTitles = new String[9];
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//这个修改为对应子Fragment和父Fragment的布局文件
View view = inflater.inflate(R.layout.tab_layout,null);
tabLayout = (TabLayout) view.findViewById(R.id.tablayout);
viewPager = (ViewPager) view.findViewById(R.id.tab_viewpager);
initView();
return view;
}
private void initView() {
mTabTitles[0] = "推荐";
mTabTitles[1] = "热点";
mTabTitles[2] = "科技";
mTabTitles[3] = "体育";
mTabTitles[4] = "健康";
mTabTitles[5] = "财经";
mTabTitles[6] = "娱乐";
mTabTitles[7] = "美食";
mTabTitles[8] = "政法";
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
//设置tablayout距离上下左右的距离
//tab_title.setPadding(20,20,20,20);
mFragmentArrays[0] = TabFragment.newInstance();
mFragmentArrays[1] = TabFragment.newInstance();
mFragmentArrays[2] = TabFragment.newInstance();
mFragmentArrays[3] = TabFragment.newInstance();
mFragmentArrays[4] = TabFragment.newInstance();
mFragmentArrays[5] = TabFragment.newInstance();
mFragmentArrays[6] = TabFragment.newInstance();
mFragmentArrays[7] = TabFragment.newInstance();
mFragmentArrays[8] = TabFragment.newInstance();
PagerAdapter pagerAdapter = new MyViewPagerAdapter(getFragmentManager());
viewPager.setAdapter(pagerAdapter);
//将ViewPager和TabLayout绑定
tabLayout.setupWithViewPager(viewPager);
}
final class MyViewPagerAdapter extends FragmentPagerAdapter {
public MyViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Bundle bundle=new Bundle();
bundle.putInt("shuju",position);
mFragmentArrays[position].setArguments(bundle);
return mFragmentArrays[position];
}
@Override
public int getCount() {
return mFragmentArrays.length;
}
@Override
public CharSequence getPageTitle(int position) {
return mTabTitles[position];
}
}
@Override
public void onPause() {
super.onPause();
}
采用了Activity中调用Fragment,Fragment中嵌套Fragment的方法,
明天会对每个分类中的内容进行设计