一个XML中的多个ListView。可能吗?

时间:2011-03-18 22:01:44

标签: android android-layout android-listview android-3.0-honeycomb

我想并排显示多个ListViews(水平),并且每个都可以自行滚动,滚动一个不会改变其他人的滚动位置,也不会扩展它,而不是常规检查按钮来自Android我想使用我的图片。

P.S:我在这里使用HoneyComb。

以下是我想要的示例截图。

任何有关我应该如何进行的帮助都会非常感激。 这是我的视图的xml。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:splitMotionEvents="true">
    <ListView android:id="@+id/list1" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" />
    <ListView android:id="@+id/list2" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" />
    <ListView android:id="@+id/list3" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" />
</LinearLayout>

enter image description here

1 个答案:

答案 0 :(得分:2)

Java代码:

public class DesignMain extends Activity {
/** Called when the activity is first created. */
LazyAdapter dealAdapter;
static ViewHolder holder;
ListView list,list1,list2;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    list=(ListView)findViewById(R.id.userdeal);
    list1=(ListView)findViewById(R.id.userdeal1);
    list2=(ListView)findViewById(R.id.userdeal2);
    dealAdapter = new LazyAdapter(DesignMain.this,sCheeseStrings);
    list.setAdapter(dealAdapter);
    list1.setAdapter(dealAdapter);
    list2.setAdapter(dealAdapter);
}
class LazyAdapter extends BaseAdapter {
    LayoutInflater mInflater;       
    String name;
    String TAG = "MultiLine";
    int i = -1;
    int j = -1;
    int k = -1;
    String[] VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7;

    public LazyAdapter(Context context, String[] value1) {
        try {
            mInflater = LayoutInflater.from(context);
            VAL1 = value1;
        } catch (Exception e) {
            Log.v(TAG, "dom" + e);
        }
    }
    public int getCount() {
        return VAL1.length;
    }
    public Object getItem(int arg0) {
        return arg0;
    }
    public long getItemId(int arg0) {
        return arg0;
    }
    public View getView(int position, View convertView, ViewGroup arg2) {
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.list, null);
        holder = new ViewHolder();
        holder.text1 = (TextView) convertView.findViewById(R.id.listtext);
        convertView.setTag(holder);
    } else {
        holder.text1 = (TextView) convertView.findViewById(R.id.listtext);
    }
    holder.text1.setText(VAL1[position]);
    return convertView;
} 
}
static class ViewHolder {
    TextView text1, text2, text3,text4,text_time;
    ImageView icon;
}
static final String[] sCheeseStrings = {"Hushallsost", "Iberico", "Idaho Goatster",
    "Idiazabal", "Il Boschetto al Tartufo", "Ile d'Yeu", "Isle of Mull", "Jarlsberg",
    "Jermi Tortes", "Jibneh Arabieh", "Jindi Brie", "Jubilee Blue", "Juustoleipa",
    "Kadchgall", "Kaseri", "Kashta", "Kefalotyri"
    };
static final String[] sCheeseStrings1 = {"Cabecou", "Caboc", "Cabrales", "Cachaille", "Caciocavallo", "Caciotta",
    "Caerphilly", "Cairnsmore", "Calenzana", "Cambazola", "Camembert de Normandie",
    "Canadian Cheddar", "Canestrato", "Cantal", "Caprice des Dieux", "Capricorn Goat",
    "Capriole Banon", "Carre de l'Est", "Casciotta di Urbino", "Cashel Blue", "Castellano"
    };
static final String[] sCheeseStrings2 = {"Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
    "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale",
    "Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese",
    "Ami du Chambertin", "Anejo Enchilado", "Anneau du Vic-Bilh", "Anthoriro", "Appenzell"
    };

}

main.xml中

<LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"  android:layout_width="wrap_content" 
                android:layout_height="fill_parent">
    <LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"
                    android:orientation="horizontal"
                    android:layout_width="wrap_content" android:layout_height="fill_parent">
    <ListView       android:id="@+id/userdeal" android:listSelector="@drawable/list1" 
                    android:cacheColorHint="#00000000" android:layout_width="120dip" 
                    android:layout_height="fill_parent" />      
    <ListView       android:id="@+id/userdeal1" android:listSelector="@drawable/list1" 
                    android:cacheColorHint="#00000000" android:layout_width="100dip" 
                    android:layout_height="fill_parent" />     
    <ListView       android:id="@+id/userdeal2" android:listSelector="@drawable/list1" 
                    android:cacheColorHint="#00000000" android:layout_width="100dip" 
                    android:layout_height="fill_parent" />       
</LinearLayout>

List.xml:

<LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical" android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:layout_marginLeft="10dip" android:id="@+id/lay_txt">
   <TextView    android:id="@+id/listtext" android:textSize="15sp"
                android:textColor="#FFFFFF"
                android:layout_width="wrap_content" android:layout_height="20dip"
                android:ellipsize="end" android:layout_marginTop="15dip" android:text="Card No" />
  <RadioButton  android:id="@+id/select_card" android:layout_width="wrap_content" 
                android:layout_height="wrap_content"  android:layout_alignParentRight="true"
                android:focusable="false"/>
</RelativeLayout>