Activity

/** * Created by steven on 2017/10/29 0029. */public class FloatActionBarActivity extends BaseActivity {    private DrawerLayout mRootDl;    private LinearLayout mMenuLl;    private TabLayout mIndicatorTl;    private ViewPager mContentVp;    private List tabIndicators;    private List tabFragments;    private ContentPagerAdapter contentAdapter;    private ActionBarDrawerToggle drawerToggle;    public static void startActivity(Context context ){        Intent intent = new Intent(context, FloatActionBarActivity.class);        context.startActivity(intent);    }    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_fab);        mIndicatorTl = (TabLayout) findViewById(R.id.tl_indicator);        mContentVp = (ViewPager) findViewById(R.id.vp_content);        initDrawer();        initContent();        initTab();    }    private void initDrawer() {        mRootDl = (DrawerLayout) findViewById(R.id.dl_root);        drawerToggle = new ActionBarDrawerToggle(this, mRootDl, R.string.app_name, R.string.app_name);        mRootDl.setDrawerListener(drawerToggle);        mMenuLl = (LinearLayout) findViewById(R.id.ll_menu);        DrawerLayout.LayoutParams layoutParams = (DrawerLayout.LayoutParams) mMenuLl.getLayoutParams();        layoutParams.width = getScreenSize()[0]/4*3;        getSupportActionBar().setHomeButtonEnabled(true);        getSupportActionBar().setDisplayHomeAsUpEnabled(true);    }    public int[] getScreenSize(){        int screenSize[] = new int[2];        DisplayMetrics displayMetrics = new DisplayMetrics();        this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);        screenSize[0] = displayMetrics.widthPixels;        screenSize[1] = displayMetrics.heightPixels;        return screenSize;    }    public void onClickFab(View v){        Snackbar.make(findViewById(R.id.fab_add), "Show The Snackbar", Snackbar.LENGTH_SHORT).show();    }    private void initTab(){        mIndicatorTl.setTabMode(TabLayout.MODE_FIXED);        mIndicatorTl.setTabTextColors(ContextCompat.getColor(this, R.color.gray), ContextCompat.getColor(this, R.color.white));        mIndicatorTl.setSelectedTabIndicatorColor(ContextCompat.getColor(this, R.color.white));        ViewCompat.setElevation(mIndicatorTl, 10);        mIndicatorTl.setupWithViewPager(mContentVp);    }    private void initContent(){        tabIndicators = new ArrayList<>();        for (int i = 0; i < 3; i++) {            tabIndicators.add("Tab " + i);        }        tabFragments = new ArrayList<>();        for (String s : tabIndicators) {            tabFragments.add(TabListFragment.newInstance(s));        }        contentAdapter = new ContentPagerAdapter(getSupportFragmentManager());        mContentVp.setAdapter(contentAdapter);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.menu_samples, menu);        return true;    }    @Override    public void onConfigurationChanged(Configuration newConfig) {        super.onConfigurationChanged(newConfig);        drawerToggle.onConfigurationChanged(newConfig);    }    @Override    public void onPostCreate(Bundle savedInstanceState) {        super.onPostCreate(savedInstanceState);        drawerToggle.syncState();    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if (drawerToggle.onOptionsItemSelected(item)){            return true;        }        return super.onOptionsItemSelected(item);    }    class ContentPagerAdapter extends FragmentPagerAdapter {        public ContentPagerAdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            return tabFragments.get(position);        }        @Override        public int getCount() {            return tabIndicators.size();        }        @Override        public CharSequence getPageTitle(int position) {            return tabIndicators.get(position);        }    }}

布局文件

<?xml version="1.0" encoding="utf-8"?>.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/dl_root"    android:layout_width="match_parent"    android:layout_height="match_parent">    .support.design.widget.CoordinatorLayout        android:layout_width="match_parent"        android:layout_height="match_parent">        .support.design.widget.AppBarLayout            android:id="@+id/appbar"            android:layout_width="match_parent"            android:layout_height="wrap_content">            "@layout/include_toolbar" />            .support.design.widget.TabLayout                android:id="@+id/tl_indicator"                android:layout_width="match_parent"                android:layout_height="wrap_content" />        .support.design.widget.AppBarLayout>        .support.v4.view.ViewPager            android:id="@+id/vp_content"            android:layout_width="match_parent"            android:layout_height="match_parent"            app:layout_behavior="@string/appbar_scrolling_view_behavior" />        "bottom"            android:layout_width="wrap_content"            android:layout_height="wrap_content">            .support.design.widget.CoordinatorLayout>    "@+id/ll_menu"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_gravity="start"        android:orientation="vertical"        android:gravity="center"        android:background="@color/white">        "wrap_content"            android:layout_height="wrap_content"            android:text="Menu Content"            android:textColor="@color/black"            android:textSize="@dimen/sp_16"/>    .support.v4.widget.DrawerLayout>

子fragment

public class TabListFragment extends Fragment implements AdapterView.OnItemClickListener{    private static final String EXTRA_CONTENT = "content";    private ListView mContentLv;    public static TabListFragment newInstance(String content){        Bundle arguments = new Bundle();        arguments.putString(EXTRA_CONTENT, content);        TabListFragment tabContentFragment = new TabListFragment();        tabContentFragment.setArguments(arguments);        return tabContentFragment;    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View contentView = inflater.inflate(R.layout.fragment_tab_list, null);        mContentLv = (ListView) contentView.findViewById(R.id.lv_content);        mContentLv.setOnItemClickListener(this);        ViewCompat.setNestedScrollingEnabled(mContentLv, true);        mContentLv.setAdapter(new ContentAdapter());        return contentView;    }    @Override    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        // TODO    }    private class ContentAdapter extends BaseAdapter{        @Override        public int getCount() {            return 10;        }        @Override        public Object getItem(int position) {            return null;        }        @Override        public long getItemId(int position) {            return 0;        }        @Override        public View getView(final int position, View convertView, ViewGroup parent) {            View contentView = LayoutInflater.from(getActivity()).inflate(R.layout.item_simple_list_2, null);            ImageView coverIv = (ImageView) contentView.findViewById(R.id.iv_cover);            coverIv.setImageResource(getResources().getIdentifier("ic_palette_0"+position%4, "mipmap", getActivity().getPackageName()));            contentView.findViewById(R.id.cv_content).setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    Intent detailIntent = new Intent(getActivity(), PaletteDetailActivity.class);                    detailIntent.putExtra(PaletteDetailActivity.EXTRA_INDEX, position);                    startActivity(detailIntent);                }            });            return contentView;        }    }}

小结

这个demo跟fragment4一样的,都是tabLayout和viewpager,因为它使用到了 android.support.design.widget.CoordinatorLayout,可伸缩扩展的布局,所以拿出来,方便以后用到。这样的布局现新的app是经常用到的。用法,代码的含义在fragment4中有提到。

android fragment学习6–其他种类的tab
https://blog.csdn.net/qq_26296197/article/details/81147007

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. android SD卡文件变化监控
  4. Android启动时启动Activity 的定义的位置
  5. Android之Audio常用属性变量
  6. Android的按钮按下效果
  7. android一种较为复杂的布局参考(xml文件)
  8. Android简单计算器(已消除常见bug)
  9. Android学习笔记(11)————Android的私人文件夹的文件读写操作

随机推荐

  1. 如何使用XSL来显示XML数据的详解
  2. 简单介绍XML技术概要
  3. 详解如何使用XMLHTTP发送超长XML表单数据
  4. 具体分析微软的xml解析器
  5. 使用XSL和ASP在线编辑XML文档的代码详解
  6. XmlHttp异步获取网站数据的代码案例分析
  7. xml中应用领域的示例代码分享
  8. 如何使用XMLHTTP制作域名查询系统的代码
  9. 详细介绍XML中名字空间的代码案例
  10. 使用用XML和XSL生成动态页面的代码详解