0
点赞
收藏
分享

微信扫一扫

ObservableListView

简介

Android-ObservableScrollView实现监听scrollview滚动,对状态栏进行显示或隐藏,建议运行程序看下效果。 GitHub网址:https://github.com/ksoichiro/Android-ObservableScrollView Gradle配置:

compile 'com.github.ksoichiro:android-observablescrollview:1.6.0'

示例:向下滑动ObservableListView,上面的标题栏隐藏,向上滑动,标题栏显示出来,结果如下图所示:

image.png
标题栏隐藏效果
image.png 标题栏显示效果

第一步:在主布局文件中加入ObservableListView,代码如下所示:

<com.github.ksoichiro.android.observablescrollview.ObservableListView
    android:id="@+id/list_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</com.github.ksoichiro.android.observablescrollview.ObservableListView>

第二步:修改MainActivity的代码如下所示:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ObservableListView  listView = (ObservableListView) findViewById(R.id.list_view);
        ArrayList<String> items = new ArrayList<String>();
        for (int i = 1; i <= 50; i++) {
            items.add("数据 " + i);
        }
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
				android.R.layout.simple_list_item_1, items);
        listView.setAdapter(adapter); //为listview设置滚动回调观察者
        listView.setScrollViewCallbacks(listener);
    }
    ObservableScrollViewCallbacks listener = new ObservableScrollViewCallbacks() {
        @Override
        public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) {
        }
        @Override
        public void onDownMotionEvent() {
        }
        @Override
        public void onUpOrCancelMotionEvent(ScrollState scrollState) {
            ActionBar actionBar = getSupportActionBar();
            if (scrollState == ScrollState.UP) {
                if (actionBar.isShowing())
                    actionBar.hide();
            } else if (scrollState == ScrollState.DOWN) {
                if (!actionBar.isShowing())
                    actionBar.show();
            }
        }
    };
}
举报
0 条评论