Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在listview滚动时调整顶部视图的大小_Android_Listview_Scroll_Resize - Fatal编程技术网

Android 在listview滚动时调整顶部视图的大小

Android 在listview滚动时调整顶部视图的大小,android,listview,scroll,resize,Android,Listview,Scroll,Resize,我在主布局底部的列表视图上方有一个布局。 当我滚动列表时,我想使顶部布局更小。我现在正在尝试使用列表视图滚动侦听器来实现这一点,并更改布局参数“宽度”和“高度”。 问题是这个过程一点也不顺利,消耗了很多资源。 如何在不使用布局参数(占用大量资源)的情况下重新调整俯视图的大小 我为listview设置的滚动侦听器: 公共类EndLessScrolling实现AbsListView.OnScrollListener{ private int amountViewInitDimension =

我在主布局底部的列表视图上方有一个布局。 当我滚动列表时,我想使顶部布局更小。我现在正在尝试使用列表视图滚动侦听器来实现这一点,并更改布局参数“宽度”和“高度”。 问题是这个过程一点也不顺利,消耗了很多资源。 如何在不使用布局参数(占用大量资源)的情况下重新调整俯视图的大小

我为listview设置的滚动侦听器:

公共类EndLessScrolling实现AbsListView.OnScrollListener{

    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(参数);
}
}
}
}

您看过这个库吗?我想这就是你想要的


请您通过添加所需的相关代码来改进您的问题,以便社区能够解决您的问题。