首页 > 系统 > Android > 正文

Android实现顶部悬浮效果

2019-10-22 18:26:08
字体:
来源:转载
供稿:网友

本文实例为大家分享了Android实现顶部悬浮效果的具体代码,供大家参考,具体内容如下

效果图

Android,顶部悬浮

 布局

<?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>

切记

 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表