2012-03-21 5 views
1

私のアプリケーションで私はリストビューを持っており、私はリストビューにWebビューを膨らませています。リストビューアイテムにデータと画像を読み込むことができます。問題は、リスト項目が異なる内容のために同じ高さではないということです。私は同じ高さのすべてのリスト項目を作成したい実行時にリストビューのアイテムの高さを計算し、アンドロイドですべてのアイテムを同じ高さに設定するにはどうすればよいですか?

リスト項目の最大データを持ち、リスト項目の残りの部分にその高さを設定する方法。

どうすればいいですか...私はそれについては何の手掛かりもありません。10番目のアイテムが最大の高さを持っているとしたら、その高さを残りの部分に適用したいとします。私はこのてくださいの実装を支援し、

boolean[] flags=new boolean[szieOfList]; 

塗りつぶしfalseにこの配列を言う、

<?xml version="1.0" encoding="utf-8"?> 

<WebView 
    android:id="@+id/wv1" 
    android:layout_width="fill_parent" android:paddingRight="20dp" 
    android:layout_height="wrap_content" /> 

+0

をあなたが投稿することができますいくつかの人があなたを助けることができるようにここで膨らませているxml、 – Triode

答えて

0

は、フラグの配列を持ってご支援をお願いいたします。

は、あなたの活動やアダプタで変数maxの高さを持っている最大の、のonCreateメソッドでは0で初期化言う、今あなたは、XMLを膨張さGetViewメソッドでは、次のコードを記述します。

LayoutInflater layoutInflater = (LayoutInflater) getActivity() 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View view= (WebView) layoutInflater 
      .inflate(R.layout.web_view, null); 
if(flag[position]) 
{ 
     LayoutParams params = view.getLayoutParams(); 
       params.height = max; 
       view.setLayoutParams(params); 
}  
ViewTreeObserver observer = view.getViewTreeObserver(); 
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     //in here, place the code that requires you to know the dimensions. 

     flag[position]=true; 
     int height= view.getHeight(); 
     if(max<height) 
     { 
       max=height; 
       notifyDataSetInvalidated(); 
     } 
      else 
     { 
       LayoutParams params = view.getLayoutParams(); 
       params.height = max; 
       view.setLayoutParams(params); 
     } 
     //this will be called as the layout is finished, prior to displaying. 
    } 
} 
+0

この行は、boolean [] flags = new boolean [szieOfList];ここでリストのサイズはnullになりますか? – cavallo

+0

リストビューのデータをロードするリストのサイズ。配列の長さです。 – jeet

関連する問題