• Android ---------- TabLayout 实战 (二) 仿京东商品详情页


    1.效果图

    2.原理:TabLayout提供了一个水平的布局用来展示   Tabs 作为一级标签导航;用横向布局的recycleview作为第二级标签导航。

    3.添加依赖: compile 'com.android.support:design:27.+ ‘

    4.布局文件:

      (1)主容器布局

    <android.support.design.widget.TabLayout
    
    android:id="@+id/tablayout"
    
    android:layout_width="match_parent"
    
    android:layout_height="30dp"
    
    app:tabTextAppearance="@style/MyTabLayoutTextAppearanceInverse"   // 设置标签的字体大小  在style文件里进行设置
    
    app:tabIndicatorHeight="2dp"  // 设置便签下划线的高度(厚度)      不设置的话,默认大小就可以    设置为0dp就是不显示下划线
    
    app:tabIndicatorColor="#007aff" // 设置标签下划线的颜色
    
    app:tabSelectedTextColor="#007aff" // 设置选中标签的字体的颜色
    
    app:tabTextColor="@android:color/darker_gray" /> //设置未选中标签的字体的颜色
    
     
    
    <android.support.v4.view.ViewPager
    
         android:id="@+id/vpager"
    
       android:layout_width="match_parent"
    
       android:layout_height="200dp" />

      (2)副容器布局

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    
        <android.support.v7.widget.RecyclerView
            android:id="@+id/tv_tab"
            android:layout_height="30dp"
            android:layout_width="match_parent"
            />
    
        。。。。。。
        。。。。。。
    
    </LinearLayout>
    </ScrollView>

    5.控制器部分代码:

      (一)Tablayout 的控制器代码 参考我之前的一篇 Android TabLayout 实战 (一) 

      (二)RecycleView 的控制器部分代码

    RecyclerView mRecyclerView = (RecyclerView)view.findViewById(R.id.tv_tab);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
                    linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
                    mRecyclerView.setLayoutManager(linearLayoutManager);
                    //设置适配器
                    DataAdapter adapter = new DataAdapter();
                    adapter.setOnItemClickListener(new OnRecyclerViewItemClickListener() {
                        @Override
                        public void onItemClick(View view, int position) {
                            。。。
                            。。。
                            adapter.notifyDataSetChanged();
                        }
                    });
                    mRecyclerView.setAdapter(adapter);    

        原理:为RecycleView添加监听事件,点击哪个标签获得position,从而刷新适配器。

    6.Tips:因为博主的业务需求,二级导航标签是动态获取的数据,存在数据仅有一条的情况,这种情况就可以隐藏掉二级导航标签。

  • 相关阅读:
    二级域名配置
    环信框架-消息模块
    屏幕适配问题
    iOS-NSSession
    环信框架使用
    静态UITableView
    __weak存在的问题
    MVVM与MVC
    iOS通知与多线程
    block
  • 原文地址:https://www.cnblogs.com/apeandcat/p/8622394.html
Copyright © 2020-2023  润新知