如何在android中更改listview项的宽度和高度?

时间:2014-06-17 06:22:16

标签: android android-intent android-activity

我正在尝试构建一个应用程序,其中有一个包含许多项目的列表视图,但我无法更改或设置单个项目的宽度和高度。我已经到处搜索,我得到的答案是width fill_parent,但它不适合我...

请帮助....提前感谢...这里有代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="3dp"
    tools:context=".CustomListViewAndroidExample" >

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" 
        android:layout_weight="1"/> 

</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

如果要动态更改列表视图的高度,可以使用

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

import android.view.ViewGroup.LayoutParams;
ListView mListView = (ListView)   findViewById(R.id.listviewid);
LayoutParams list = (LayoutParams) mListView.getLayoutParams();
list.height = set the height acc to you;//like int  200
mListView.setLayoutParams(list);

答案 1 :(得分:0)

This link向您展示如何使用自己的自定义适配器在java中执行此操作。

在覆盖适配器中的getView()时,可以在将视图提供给渲染框架之前修改高度。另外,请注意,您不必使用SimpleCursorAdapter,也可以以相同的方式使用ArrayAdapter。

final SimpleCursorAdapter adapter = new SimpleCursorAdapter (context, cursor) {
    @Override
    public View getView (int position, View convertView, ViewGroup parent) {
        final View view = super.getView(position, convertView, parent);
        final TextView text = (TextView) view.findViewById(R.id.tvRow);
        final LayoutParams params = text.getLayoutParams();

        if (params != null) {
                params.height = mRowHeight;
        }

        return view;
    }
}