1

だから私はこのリストビューを持っていて、高さはfillparentで、主に画面の半分のサイズを取っていますが、その後、このリストビューの親レイアウトを変更する必要があります。ここで、アプリが異常に遅れていることに気付き始めました。いくつかの診断の後、アダプターからの getView ()が何度も呼び出されていることがわかりました。

PS:リストビューの高さが wrapcontent のときに最初にこの問題が発生し、fillparentに変更すると問題が解決しましたが、高さの変更で再び発生しました。

誰かがこれについて何か手がかりを持っているなら、それは大歓迎です、ありがとう

4

2 に答える 2

0

親の高さを変更しようとすると、間違って RelativeLayout.LayoutParams(ViewGroup.LayoutParams. WRAP_CONTENT , ViewGroup.LayoutParams. WRAP_CONTENT );を実行してしまいました。

FILL_PARENTに変更した後、問題は解消されました。

于 2013-09-20T18:41:11.007 に答える
0

getView() メソッドが原因でアプリが遅れていると思われる場合は、最適化を試す必要があります。Android システムは、再利用できるオブジェクトのプールを保持します。これらは、convertView パラメーターとして指定されます。

@Override

    public View getView(int position, View convertView, ViewGroup parent) {
             if (convertView == null) {
              LayoutInflater inflater = context.getLayoutInflater();
              convertView = inflater.inflate(R.layout.rowlayout, null);
             }

             // asign correct values to your items - example:

             TextView text = (TextView) convertView.findViewById(R.id.text);
             text.setText(values.get(position));

             //

            return convertView;
    }
于 2013-09-20T18:31:37.973 に答える