QuickReturn:用于ScrollView 和 ListView 的底部部和顶部悬浮view

来源:互联网 发布:c语言绝对公正的裁判 编辑:程序博客网 时间:2024/06/05 15:54

一个UI插件库, 用于ScrollView 和 ListView 的底部部和顶部悬浮viwe

QuickReturnListView实现监听listview滚动方向,分为监听上划手势和下滑手势。 当用户上滑时,会在底部弹窗个view,用户反向,该view会自动动画隐藏。 下滑手势监听同理。

97-4d1748b25be06e66a1a291a4db9527c5

97-816f02b59324005a2ae09ccfbbb96491

97-4c54b5b309db997191891dee4188fa4a

使用

QuickReturnHeaderListFragment3.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
publicclass QuickReturnHeaderListFragment3 extendsListFragment {
 
    // region Member Variables
    privateString[] mValues;
 
    @InjectView(android.R.id.list) ListView mListView;
    @InjectView(R.id.quick_return_tv) TextView mQuickReturnTextView;
    // endregion
 
    // region Constructors
    publicstatic QuickReturnHeaderListFragment3 newInstance() {
        QuickReturnHeaderListFragment3 fragment = newQuickReturnHeaderListFragment3();
        Bundle args = newBundle();
        fragment.setArguments(args);
        returnfragment;
    }
 
    publicQuickReturnHeaderListFragment3() {
    }
    // endregion
 
    // region Lifecycle Methods
    @Override
    publicvoid onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
 
    @Override
    publicView onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_list_quick_return_header, container, false);
        ButterKnife.inject(this, view);
        returnview;
    }
 
    @Override
    publicvoid onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
 
        mValues = getResources().getStringArray(R.array.countries);
 
        ArrayAdapter<String> adapter = newArrayAdapter<String>(getActivity(),
                R.layout.list_item, R.id.item_tv, mValues);
 
        mListView.setAdapter(adapter);
 
        // Set up the QuickReturn scroll listener
        intheaderHeight = getActivity().getResources().getDimensionPixelSize(R.dimen.header_height2);
        QuickReturnListViewOnScrollListener scrollListener = newQuickReturnListViewOnScrollListener(QuickReturnType.HEADER,
                mQuickReturnTextView, -headerHeight, null0);
        // Setting to true will slide the header and/or footer into view or slide out of view based
        // on what is visible in the idle scroll state
        scrollListener.setCanSlideInIdleScrollState(true);
        mListView.setOnScrollListener(scrollListener);
    }
 
    @Override
    publicvoid onDestroyView() {
        super.onDestroyView();
        ButterKnife.reset(this);
    }
    // endregion
}

fragment_list_quick_return_header.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<RelativeLayout 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">
 
    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@android:id/list"/>
 
    <com.etiennelawlor.quickreturn.views.CustomFontTextView
        android:id="@+id/quick_return_tv"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:background="@color/transparent_black_ninty"
        android:textSize="22sp"
        android:text="@string/header"
        android:textColor="@android:color/white"
        android:gravity="center"
        app:textFont="Roboto_Bold"/>
 
</RelativeLayout>

github地址https://github.com/lawloretienne/QuickReturn

0 0