<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
tools:context="nativesample.videolan.org.listview.MainActivity">
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends AppCompatActivity {
private int itemHeight;
private ListView listView;
private String data[] = {"apple", "banner", "pear", "kiwi", "orange", "Mango", "Strawberry",
"watermelon", "pear", "grape", "pineapple",
"apple", "banner", "pear", "kiwi", "orange", "Mango", "Strawberry",
"watermelon", "pear", "grape", "pineapple",
"apple", "banner", "pear", "kiwi", "orange", "Mango", "Strawberry",
"watermelon", "pear", "grape", "pineapple",};
;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
itemHeight = 0;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data);
listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(adapter);
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (firstVisibleItem == 0) {
View firstVisibleItemView = listView.getChildAt(0);
if (firstVisibleItemView != null && firstVisibleItemView.getTop() == 0) {
Log.d("ListView", "##### 滚动到顶部 #####");
getSupportActionBar().show();
}
}else if ((firstVisibleItem + visibleItemCount) == totalItemCount) {
View lastVisibleItemView = listView.getChildAt(listView.getChildCount() - 1);
if (lastVisibleItemView != null && lastVisibleItemView.getBottom() == listView.getHeight()) {
Log.d("ListView", "##### 滚动到底部 ######");
}
}
View c = view.getChildAt(0);
if (c == null) {
return;
}
if (itemHeight < c.getHeight()) {
itemHeight = c.getHeight();
}
int height = (firstVisibleItem + visibleItemCount - 1) * itemHeight;
if (height >= ScreenUtils.getScreenHeight(MainActivity.this)) {
getSupportActionBar().hide();
}else {
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
});
}
/**
* 获得屏幕高度
*
* @param context
* @return
*/
public static int getScreenHeight(Context context) {
WindowManager wm = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
return outMetrics.heightPixels;
}
}
![这里写图片描述](https://img-blog.csdn.net/20180315210401355?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHlibHlibHlibGlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)