gpt4 book ai didi

android - 动态更改 Listview 的高度 Android

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:58 25 4
gpt4 key购买 nike

我的 XML 文件的格式如下:

 LinearLayout 

ScrollView

RelativeLayout

LinearLayout

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_margin="5dip"
android:layout_weight="30" >
</ListView>

LinearLayout

这是我的 BaseAdapter 类

public class APIQuickCheckoutProductProvider extends BaseAdapter {

private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater = null;

public APIQuickCheckoutProductProvider(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data = d;
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public int getCount() {
return data.size();
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.product_item, null);

TextView brand = (TextView) vi.findViewById(R.id.brands);
TextView quantity_name = (TextView) vi.findViewById(R.id.quantity_name);

TextView price = (TextView) vi.findViewById(R.id.price);

HashMap<String, String> product = new HashMap<String, String>();
product = data.get(position);

// Setting all values in listview
brand.setText(product.get(APIQuickCheckout.KEY_BRAND));
quantity_name.setText(product.get(APIQuickCheckout.KEY_QUANTITY_NAME));
price.setText(product.get(APIQuickCheckout.KEY_PRICE));

return vi;
}
}

这是我设置适配器的主类:

adapter = new APIQuickCheckoutProductProvider(APIQuickCheckout.this, productList);
lv.setAdapter(adapter);
adapter.notifyDataSetChanged();

最后这是我设置到 ListView 的每一行

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

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dip"
android:layout_weight="7"
android:weightSum="6" >

<TextView
android:id="@+id/brands"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="3" />

<TextView
android:id="@+id/quantity_name"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="3" />
</LinearLayout>

<LinearLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dip"
android:layout_weight="2"
android:weightSum="6" >

<TextView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="3" />

<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="3" />
</LinearLayout>

</LinearLayout>

但是,当我尝试上面提到的代码时,它显示第一个产品,而我只能看到第二个产品的顶部。从那时起我什么也看不到。那么,如何在添加新产品时动态更改 ListView 的高度?为了显示所有这些。

最佳答案

如果你想动态改变 ListView 的高度,你可以使用,

list.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, theSizeIWant));

关于android - 动态更改 Listview 的高度 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14020859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com