• Stars
    star
    194
  • Rank 200,219 (Top 4 %)
  • Language
    Java
  • Created almost 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

一个底部抽屉。它可以悬停在中间,随着滑动自然过度到全屏

HoverView

一直觉得知乎的交互体验是很好的,这次山寨了一把。 这是一个底部抽屉,类似知乎收藏夹。它可以悬停在中间,随着滑动自然过渡到全屏。 它是仿照support包里的DrawLayoutNavigationView设计的。

效果图

知乎收藏夹:

  • 可以悬停在中间
  • 可以滑动到全屏
  • 过渡十分流畅,纵享丝滑

这里写图片描述


我的 HoverView :
  • 可以悬停在中间
  • 可以滑动到全屏
  • 过渡尚可,没有知乎的流畅

这里写图片描述

CSDN链接

http://blog.csdn.net/a153614131/article/details/53647831

特点及使用场景

底部抽屉,可以悬停、也可以全屏展示。适用于:

  • 淘宝购物车
  • 收藏夹
  • 分享框
  • ...

Gradle 依赖

最新版本:1.0.2

// 1. Add it in your root build.gradle at the end of repositories:
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

// 2. Add the dependency in your app/build.gradle
dependencies {
    compile 'com.github.fashare2015:HoverView:最新版本'
}

使用方式

布局结构

类似support包里的DrawLayoutNavigationView的关系。这里有两个View:

  • HoverViewContainer: 容器,对应DrawLayout
  • HoverView: 悬停抽屉,对应NavigationView
<com.fashare.hover_view.HoverViewContainer
    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"
    android:background="@android:color/darker_gray">

    // 原本的 rootView
    ...

    <com.fashare.hover_view.HoverView
        android:id="@+id/hv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:mTopFill="0.0"
        app:mTopHover="0.5">

        // HoverView 的内容
        ...

    </com.fashare.hover_view.HoverView>

</com.fashare.hover_view.HoverViewContainer> 

HoverView 属性

它有两个属性,描述 HoverView.getTop()占父容器的比例(Height 为父容器高度):

  • app:mTopFill="0.0" 全屏时,距顶部 0.0Height(默认)
  • app:mTopHover="0.5" 悬停时,距顶部 0.5Height

状态(高度)切换

// 状态定义
public enum ViewState {
    FILL,       // 全屏
    HOVER,      // 半空悬停
    CLOSE;      // 关闭: 完全藏在屏幕底部
}

// 状态切换 —— 类似 View.setVisibility();
mHoverView.changeState(ViewState.HOVER);   // 打开至 "悬停" 状态
mHoverView.changeState(ViewState.FILL);    // 打开至 "全屏" 状态
mHoverView.changeState(ViewState.CLOSE);   // 切换至 "关闭" 状态

类图

这里写图片描述

最后

使用愉快~

More Repositories

1

ActivityTracker

A FloatingView to show current topActivity in the activity stack.
Java
606
star
2

StackLayout

Android 层叠卡片控件,仿"探探app"
Java
455
star
3

MVVM-JueJin

高仿"掘金Android App": databinding + kotlin + rx 的优雅实践。(持续打磨中~)
Java
397
star
4

TimerView

一个解耦良好的计时控件,可自由扩展。
Java
389
star
5

LinkedScrollDemo

一个仿饿了么订餐页面的双列表联动Demo
Java
110
star
6

StackPageTransformer

A PageTransformer for ViewPager to show as stack!!!
Java
70
star
7

HelloKotlin

An summarize of kotlin with some demo.
Kotlin
44
star
8

SmallHelper-IDEA-Plugin

【IDEA插件】为插件化框架 Small 建立页面索引和快速跳转
Kotlin
43
star
9

NoViewHolder

No ViewHolder, No Adapter!!! 基于反射实现 DATA 和 VIEW 的绑定,不知 ViewHolder 为何物。
Java
41
star
10

AOSP_Indexer

为AOSP native代码建立索引
CMake
38
star
11

java-sugar

Kotlin
26
star
12

Dynamic-Load-Learning

Kotlin
22
star
13

ShareElementDemo

android 过场动画 Demo,基于 ShareElement。同时实现下拉返回上一个 Activity。
Java
20
star
14

gradle-screen-record

A GIF recorder, based on gradle script to record screen in Android Device, and the record (XXX.gif) will be auto uploaded to your PC.
Shell
20
star
15

DependencyBehavior

一个 demo, 用于分析 CoordinatorLayout 依赖机制
Java
5
star
16

XiaChuFang-ReactNative

高仿下厨房app, ReactNative版
JavaScript
2
star
17

apt_for_viewholder

just like ButterKnife, generate java code by @ViewHolder and @Adapter during compile time.
Java
1
star
18

PolygonImageView

正多边形边框的自定义ImageView
Java
1
star
19

my_rxjava_demo

Java
1
star