• 顶部悬浮


    效果图

     布局

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/swipeRefreshLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".ui.activity.NewPersonalCardActivity">
    
        <android.support.design.widget.CoordinatorLayout
            android:id="@+id/rootLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <android.support.design.widget.AppBarLayout
                android:id="@+id/appBarLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
    
                <android.support.design.widget.CollapsingToolbarLayout
                    android:id="@+id/collapsingToolbarLayout"
                    android:layout_width="match_parent"
                    android:layout_height="192dp"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed"
                    app:titleEnabled="false">
    
                    <LinearLayout
                        android:id="@+id/headLayout"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical"
                        app:layout_collapseMode="pin"
                        app:layout_collapseParallaxMultiplier="0.7">
    
                        <include layout="@layout/personal_new_top" />
                    </LinearLayout>
    
                    <android.support.v7.widget.Toolbar
                        android:id="@+id/toolBar"
                        android:layout_width="match_parent"
                        android:layout_height="44dp"
                        android:background="@color/white"
                        android:navigationIcon="@drawable/icon_back"
                        app:contentInsetLeft="0dp"
                        app:contentInsetStart="0dp"
                        app:layout_collapseMode="pin"
                        app:navigationIcon="@drawable/icon_back">
    
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:singleLine="true"
                            android:textColor="@color/c333333"
                            android:textSize="16sp"
                            tools:text="讲师" />
                    </android.support.v7.widget.Toolbar>
                </android.support.design.widget.CollapsingToolbarLayout>
    
                <include layout="@layout/new_personal_tabs" />
            </android.support.design.widget.AppBarLayout>
    
            <android.support.v4.widget.NestedScrollView
                android:id="@+id/nestedScrollView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fillViewport="true"
                android:scrollbars="none"
                app:layout_behavior="@string/appbar_scrolling_view_behavior">
    
                <android.support.v4.view.ViewPager
                    android:id="@+id/viewPager"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior" />
            </android.support.v4.widget.NestedScrollView>
        </android.support.design.widget.CoordinatorLayout>
    </android.support.v4.widget.SwipeRefreshLayout>

    java

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            ARouter.getInstance().inject(this);
            setContentView(R.layout.activity_new_personal_card);
            ButterKnife.bind(this);
            setSupportActionBar(toolBar);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayShowTitleEnabled(false);
            toolBar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    onBackPressed();
                }
            });
            initData();
        }
    
      private void initRefresh() {
            appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
                @Override
                public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
                    if (verticalOffset >= 0) {
                        swipeRefreshLayout.setEnabled(true);
                    } else {
                        swipeRefreshLayout.setEnabled(false);
                    }
                }
            });
            swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
                @Override
                public void onRefresh() {
                    initData();
                    swipeRefreshLayout.setRefreshing(false);
                }
            });
        }

     注意事项

    1.清单文件需要配置

    android:theme="@style/personalCard"
    <style name="personalCard" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="windowActionBar">false</item>
            <item name="windowNoTitle">true</item>
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>

    2.gradle配置需要24以上

        compileSdkVersion 24
        //------------------ 在线依赖开始 ----------------
        compile 'com.android.support:appcompat-v7:24.2.0'
        compile 'com.android.support:recyclerview-v7:24.2.0'
        compile 'com.android.support:cardview-v7:24.2.0'
        compile 'com.android.support:design:24.2.0'

    3.recyclerView的下滑和swipRefreshLayout的下拉刷新会冲突,所以需要监听appBarLayout的位移,当位移等于0时,即appBarLayout全部展示,可以下拉刷新

    4.string.xml

    <string name="appbar_scrolling_view_behavior" translatable="false">android.support.design.widget.AppBarLayout$ScrollingViewBehavior</string>

    切记

  • 相关阅读:
    Delphi调用DLL中的接口(转)(一个FreeLibrary时 报错的解决方案)
    支持向量的DES加密单元
    斐波那契两种算法(递归,迭代规划)
    format 函数详解
    RTTI 简介(转)
    delphi 反调试代码汇总
    FastReport (4.13)中文菜单显示不全或者乱码解决方法(2010 XE2 )转
    XE可用MD5单元
    Delphi XE3 FireMonkey中文输入法Bug修正 (转)
    4个FPGA工程师面试题目
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/7339762.html
Copyright © 2020-2023  润新知