2017-10-17 16 views
0

ListViewアイテムをぼかしたい。私はCustomListViewAdapterのgetViewメソッド()に(ぼやけライブラリを使用して)ぼかしています: ぼかしでListViewアイテムをぼかす方法は?

enter image description here

@Override 
    public View getView(final int position, View convertView, final ViewGroup parent) { 
     final AirdropResult airdrop = getItem(position); 
     boolean bWasNull = false; 
     if (convertView == null) { 
      convertView = LayoutInflater.from(getContext()).inflate(R.layout.result_item, parent, false); 
      bWasNull = true; 
     } 

     final RelativeLayout airdropListRowInside = (RelativeLayout) convertView.findViewById(R.id.airdropListRowInside); 

     final TextView tvName = (TextView) airdropListRowInside.findViewById(R.id.tvCoinName); 
     final TextView tvDesc = (TextView) airdropListRowInside.findViewById(R.id.tvDesc); 
     final TextView tvStartdate = (TextView) airdropListRowInside.findViewById(R.id.tvStartdate); 

     tvName.setText(airdrop._name); 
     tvDesc.setText(airdrop._shortdesc); 

     if(bWasNull) { 
      convertView.post(new Runnable() { 
       @Override 
       public void run() { 
        Blurry.with(getContext()) 
          .radius(5) 
          .sampling(2) 
          .async() 
          .animate(100) 
          .onto(airdropListRowInside); 
       } 
      }); 
     } 

     return convertView; 
    } 
はレイアウトがぼやけますように思えるが、それは(唯一の1つのレイアウトがある)上に、非ぼやけレイアウトをレンダリングします。私はRunnable because it is apparently neededを使用しました。

これは、ListViewがアイテムを再利用する方法であるが、それを解決するのに十分な理解力がないためだと仮定しています。助けてもらえますか?

+0

完全な 'getView()'メソッドの投稿 –

+0

投稿された完全な実装。 –

答えて

0

bWasNullgetView()の内部に定義されているためです。 getView()が再度呼び出されたときには常にfalseにリセットされます。今回はconvertViewではなくnullであり、bWasNullは真ではなく、新しいconvertViewにはぼかしが適用されていません。

bWasNullgetView()の外側に定義します。 B.T.W私はこのbWasNullの使用を見ません。

+0

私はこれが問題だとは思わない。 'getView()'が呼び出されるたびにぼかしを行うと、ぼやけたマルチタイムが得られ、汚れた黒色のような効果が得られます。 –

関連する問題