Android 在listview滚动时调整顶部视图的大小
我在主布局底部的列表视图上方有一个布局。 当我滚动列表时,我想使顶部布局更小。我现在正在尝试使用列表视图滚动侦听器来实现这一点,并更改布局参数“宽度”和“高度”。 问题是这个过程一点也不顺利,消耗了很多资源。 如何在不使用布局参数(占用大量资源)的情况下重新调整俯视图的大小 我为listview设置的滚动侦听器: 公共类EndLessScrolling实现AbsListView.OnScrollListener{Android 在listview滚动时调整顶部视图的大小,android,listview,scroll,resize,Android,Listview,Scroll,Resize,我在主布局底部的列表视图上方有一个布局。 当我滚动列表时,我想使顶部布局更小。我现在正在尝试使用列表视图滚动侦听器来实现这一点,并更改布局参数“宽度”和“高度”。 问题是这个过程一点也不顺利,消耗了很多资源。 如何在不使用布局参数(占用大量资源)的情况下重新调整俯视图的大小 我为listview设置的滚动侦听器: 公共类EndLessScrolling实现AbsListView.OnScrollListener{ private int amountViewInitDimension =
private int amountViewInitDimension = 0;
public EndLessScrolling() {}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//amountView on scroll resize effect
if (firstVisibleItem < 5) {
View amountView = getActivity().findViewById(R.id.select_receiver_amount_parent);
if (amountView != null) {
ViewGroup.LayoutParams params = amountView.getLayoutParams();
if (amountViewInitDimension == 0) {
amountViewInitDimension = params.width;
}
params.width = amountViewInitDimension - firstVisibleItem * amountViewInitDimension / 10;
params.height = amountViewInitDimension - firstVisibleItem * amountViewInitDimension / 10;
receiverAmount.setTextSize(TypedValue.COMPLEX_UNIT_SP, amountTextSize - firstVisibleItem * zoomStep);
dollarSign.setTextSize(TypedValue.COMPLEX_UNIT_SP, dollarSignTextSize - firstVisibleItem * zoomStep / 2f);
amountView.setLayoutParams(params);
}
}
}
}
private int amountViewInitDimension=0;
公共endlesscring(){}
@凌驾
公共无效onScrollStateChanged(AbsListView视图,int scrollState){
}
@凌驾
public void onScroll(AbsListView视图、int firstVisibleItem、int visibleItemCount、int totalItemCount){
//滚动调整大小效果上的amountView
如果(第一个可见项<5){
View amountView=getActivity().findViewById(R.id.select\u receiver\u amount\u parent);
如果(amountView!=null){
ViewGroup.LayoutParams params=amountView.getLayoutParams();
如果(amountViewInitDimension==0){
amountViewInitDimension=参数宽度;
}
params.width=amountViewInitDimension-firstVisibleItem*amountViewInitDimension/10;
params.height=amountViewInitDimension-firstVisibleItem*amountViewInitDimension/10;
receiverAmount.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,amountTextSize-firstVisibleItem*zoomStep);
dollarSign.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,dollarSignTextSize-第一个可见项*缩放步骤/2f);
amountView.setLayoutParams(参数);
}
}
}
}
您看过这个库吗?我想这就是你想要的
请您通过添加所需的相关代码来改进您的问题,以便社区能够解决您的问题。