簡體   English   中英

如何設置自定義列表視圖項的高度......?

[英]How to set custom list view item's height…?

我有一個自定義列表視圖,其中包含兩個文本視圖和按鈕。 我已經定制了按鈕樣式。 在列表視圖中,每行都不適合正確顯示我的按鈕。 我想更改列表項的高度。 我怎樣才能做到這一點..?

這是我的列表視圖。

<ListView android:layout_width="fill_parent"
        android:scrollbars="none" android:footerDividersEnabled="false"
        android:minHeight="50dp"
        android:listSelector="#00000000" android:dividerHeight="0px"
        android:divider="#00000000" android:layout_height="fill_parent"
        android:layout_marginLeft="5dp" android:layout_marginTop="5dp"
        android:layout_marginRight="5dp" android:id="@+id/list_view"
        android:cacheColorHint="#00000000" android:background="#00000000" />

我的自定義視圖xml

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

    <TextView android:layout_width="150dp"
        android:layout_height="wrap_content" 
        android:textColor="#808080" android:text="Subtitle 2" android:id="@+id/text1" 
        android:layout_marginLeft="5dp"
        android:singleLine="true"/>

    <TextView android:layout_width="60dp"
        android:layout_height="wrap_content" 
        android:textColor="#808080" android:text="$ 00.00" android:id="@+id/text2" 
        android:singleLine="true"/>

    <Button android:layout_width="80dp" android:layout_height="25dp"
        android:background="@drawable/type10_subbg" android:text="Add"
        android:textSize="20dp" android:textStyle="bold" android:textColor="#153E7E"
        android:id="@+id/add" />
</LinearLayout>   

這是我的getView。

@SuppressWarnings("unchecked")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    pos = position;
    holder = new ViewHolder();
    convertView = inflater.inflate(R.layout.type10_sub, null);          
    holder.text1 = (TextView) convertView.findViewById(R.id.text1);
    holder.text2 = (TextView) convertView.findViewById(R.id.text2);
    holder.add = (Button) convertView.findViewById(R.id.add);
    holder.add.setTag(String.valueOf(position));
    holder.add.setOnClickListener(new OnClickListener() {           
        @Override
        public void onClick(View v) {
            Button b = (Button)v;
            int tag = Integer.valueOf((String)b.getTag());
            System.out.println("Added at "+tag);
            System.out.println("Data = "+((HashMap<String,Object>)list.get(tag)).get("text1").toString());
            System.out.println("Price = "+((HashMap<String,Object>)list.get(tag)).get("text2").toString());             }
    });         holder.text1.setText(((HashMap<String,Object>)list.get(position)).get("text1").toString());
    holder.text2.setText(((HashMap<String,Object>)list.get(position)).get("text2").toString());
    convertView.setTag(holder);
    return convertView;
}

提前致謝....!

convertedview.setlayoutparams(new Listview.setlayoutparams(width, height));

首先放置LinearLayout而不是ListView

然后編輯它到ListView否則它將無法正常工作。 這是訣竅。

在R.layout.type10_sub元素中設置minHeight

使用:

if(convertView == null){
    convertView = inflater.inflate(R.layout.type10_sub, parent);   
}

它很容易在自定義視圖的新高度進行硬編碼,只需為最高級別的項目指定layout_height ,在本例中為LinearLayout。 下面我展示了如何將其設置為100dp

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="100dp">

    ....
</LinearLayout> 

在線性布局中給android:layout_height =“100dp”而不是wrap_content

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM