今天进行了新闻各个分类的设计,主要是用技术是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的方法,
明天会对每个分类中的内容进行设计