Из названия моего вопроса моя проблема ясна. У меня есть собственный списокView и заголовок и некоторые элементы. Конечно, я добавил разделители между всеми элементами. Единственное, чего я не хочу, так это разделителя между заголовком и первым элементом. Однако приведенный ниже код не работает. Я также хочу знать точную работу этой строки.
list.setHeaderDividerEnabled(false);
Я много искал и пробовал, также посещал эти ссылки, но не повезло.
Пустое пространство между заголовком списка и первым элементом
Android listView нежелательное пространство между представлением заголовка
Заранее спасибо.
Обновлять!
public class ListView extends android.widget.ListView {
private OnScrollListener onScrollListener;
private Onscroll onscrollObj;
public ListView(Context context) {
super(context);
onCreate(context, null, null);
}
public ListView(Context context, AttributeSet attrs) {
super(context, attrs);
onCreate(context, attrs, null);
}
public ListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
onCreate(context, attrs, defStyle);
}
@SuppressWarnings("UnusedParameters")
private void onCreate(Context context, AttributeSet attrs, Integer defStyle) {
setListeners();
}
private void setListeners() {
super.setOnScrollListener(new OnScrollListener() {
private int oldTop;
private int oldFirstVisibleItem;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (onScrollListener != null) {
onScrollListener.onScrollStateChanged(view, scrollState);
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (onScrollListener != null) {
onScrollListener.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount);
}
if (onscrollObj != null) {
onDetectedListScroll(view, firstVisibleItem);
}
}
private void onDetectedListScroll(AbsListView absListView, int firstVisibleItem) {
View view = absListView.getChildAt(0);
int top = (view == null) ? 0 : view.getTop();
if (firstVisibleItem == oldFirstVisibleItem) {
if (top > oldTop) {
onscrollObj.onUpScrolling();
} else if (top < oldTop) {
onscrollObj.onDownScrolling();
}
} else {
if (firstVisibleItem < oldFirstVisibleItem) {
onscrollObj.onUpScrolling();
} else {
onscrollObj.onDownScrolling();
}
}
oldTop = top;
oldFirstVisibleItem = firstVisibleItem;
}
});
}
@Override
public void setOnScrollListener(OnScrollListener onScrollListener) {
this.onScrollListener = onScrollListener;
}
public void setOnDetectScrollListener(Onscroll onDetectScrollListener) {
this.onscrollObj = onDetectScrollListener;
}
}