ListView の空行表示されないように詰める

ListView BaseAdapter を使った時で、getView の戻り値に null を返した行は、空白の行が
表示されてしまう。

NULL を返さないようなリストを用意するべきなのだが、
どうしても表示するものが割り当てられない場合、空行ではなく詰めたい場合は、
空のレイアウトを割り当てれば良い。
以下のような、blanklayout.xml を用意する。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
</LinearLayout>

BaseAdapater で どうしても表示できない行を、以下の例のように
LayoutInflater で、NULLを指定する。

ListView listview = (ListView)findViewById(R.id.listView);
final PackageManager packageManager = getPackageManager();
final LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
listview.setAdapter(new BaseAdapter(){
   @Override
   public View getView(int position,View view,ViewGroup parent){
      if (view==null){
         View newview = layoutInflater.inflate(android.R.layout.simple_list_item_2,null);
         RunningAppProcessInfo runingAppProcessinfo = list.get(position);
         try{
         ApplicationInfo appInfo = packageManager.getApplicationInfo(runingAppProcessinfo.processName,0);
         *1.setText(packageManager.getApplicationLabel(appInfo));
         *2.setText(appInfo.packageName);
         }catch(NameNotFoundException e){
            return layoutInflater.inflate(R.layout.blanklayout,null);
         }
         return newview;
      }
      return view;
   }
   @Override
   public long getItemId(int position){
      return position;
   }
   @Override
   public Object getItem(int position){
      return position;
   }
   @Override
   public int getCount(){
      return list.size();
   }
});

*1:TextView)newview.findViewById(android.R.id.text1

*2:TextView)newview.findViewById(android.R.id.text2