【问题标题】:Mutiple ListView in one XML. Is it possible?一个 XML 中的多个 ListView。可能吗?
【发布时间】:2011-03-18 22:01:43
【问题描述】:

我想并排显示多个 ListView(水平),并且每个 ListView 都可以自行滚动,滚动一个不会改变其他的滚动位置并扩展它,而不是常规的检查按钮来自 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>

【问题讨论】:

  • 哪个部分不起作用? (顺便说一下,您可能不希望 wrap_content 用于包装 ListView 的 LinearLayouts 的高度。)
  • BaseAdapter 只填充第一个列表,第二个和第三个列表为空。
  • 你能发布一些代码吗?特别是在哪里为每个列表和适配器实现构造和设置适配器。

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


【解决方案1】:

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>

列表.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>

【讨论】:

  • 最棒的sn-p。我只是无法获得 getView 方法的头部和尾部。它可能比这更简单。谢谢。
  • @Sana 你得到你想要的设计了吗
  • 是的,我有。很好的答案文卡特什。
  • 谢谢..我们可以通过聊天在GTalk中分享知识..你可以吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 2012-01-05
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多