我正在尝试构建一个应用程序,其中有一个包含许多项目的列表视图,但我无法更改或设置单个项目的宽度和高度。我已经到处搜索,我得到的答案是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>
答案 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;
}
}