我正在向您展示下面的图像,其中行的高度不相同,我希望行应该具有相同的高度。
在我的程序中,我从XML服务中获取数据,并在列表视图中显示结果,但ListView Rows的高度不同。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/list_selector"
android:padding="3dip"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="10dp">
<TextView android:layout_height="wrap_content" android:text="ITEM"
android:layout_width="wrap_content" android:id="@+id/txtItem"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="15dip"
android:textStyle="bold"
android:textColor="#040404"></TextView>
<TextView android:layout_height="wrap_content" android:text="MANUFACTURER"
android:layout_width="wrap_content" android:id="@+id/txtItemTwo"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="14dip"
android:textColor="#FF7F50"
></TextView>
</LinearLayout>
我已经设定了高度
机器人:layout_height = “10dp”
但在dipViewying listView时仍然不一样。
这是我为getVieew定制的适配器: -
public class MyEventAdapter extends BaseAdapter {
ArrayList < String > listTitle;
ArrayList < String > listFullText;
Activity activity;
public MyEventAdapter(Activity activity, ArrayList < String > listTitle, ArrayList < String > listFullText) {
super();
this.listTitle = listTitle;
this.listFullText = listFullText;
this.activity = activity;
}
public int getCount() {
// TODO Auto-generated method stub
return listTitle.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
private class ViewHolder {
TextView txtViewTitle;
TextView txtViewTitleTwo;
}
public View getView(int position, View view, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder title;
LayoutInflater inflater = activity.getLayoutInflater();
if (view == null) {
view = inflater.inflate(R.layout.lview_row, null);
title = new ViewHolder();
title.txtViewTitle = (TextView) view.findViewById(R.id.txtItem);
title.txtViewTitleTwo = (TextView) view.findViewById(R.id.txtItemTwo);
view.setTag(title);
} else {
title = (ViewHolder) view.getTag();
}
title.txtViewTitle.setText(listTitle.get(position));
title.txtViewTitleTwo.setText(listFullText.get(position));
return view;
}
}
任何人都应该以正确的方式取得理想的结果。
提前致谢。
答案 0 :(得分:138)
问题是你误用了充气机,不要将null作为根节点
如果将null作为根节点传递,则在xml中设置的所有大小参数都无法正常工作
正确的代码是
view = inflater.inflate(R.layout.lview_row, parent, false);
http://www.doubleencore.com/2013/05/layout-inflation-as-intended/
答案 1 :(得分:2)
在getView(int position, View convertView, ViewGroup parent)
课程中覆盖方法MyEventAdapter
,并使用view.setMinimumHeight(minHeight);
设置最低视图高度。
使用方法`getView(int position,View convertView,ViewGroup parent)'设置视图的最小高度,如下所示:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder title;
LayoutInflater inflater = activity.getLayoutInflater();
if (view == null) {
view = inflater.inflate(R.layout.lview_row, null);
view.setMinimumHeight(minHeight); //set minimum height of view here
title = new ViewHolder();
title.txtViewTitle = (TextView) view.findViewById(R.id.txtItem);
title.txtViewTitleTwo = (TextView) view.findViewById(R.id.txtItemTwo);
view.setTag(title);
} else {
title = (ViewHolder) view.getTag();
}
title.txtViewTitle.setText(listTitle.get(position));
title.txtViewTitleTwo.setText(listFullText.get(position));
return view;
}
答案 2 :(得分:1)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/list_selector"
android:padding="3dip"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent">
<TextView android:layout_height="wrap_content" android:text="ITEM"
android:layout_width="wrap_content" android:id="@+id/txtItem"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="15sp"
android:textStyle="bold"
android:textColor="#040404"></TextView>
<TextView android:layout_height="wrap_content" android:text="MANUFACTURER"
android:layout_width="wrap_content" android:id="@+id/txtItemTwo"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="14sp"
android:textColor="#FF7F50"
></TextView>
</LinearLayout>
如果您的文字中有多行,则将文字设置为单行,这样它就不会出现在第二行并改变每行的高度。
答案 3 :(得分:0)
如果您的文字中有多行,则将文字设置为单行,这样它就不会出现在第二行并改变每行的高度。
答案 4 :(得分:-2)
首先你应该使用 sp 来指定文字的大小而不是dip(dp),其次我认为你有一些矛盾的尺寸你有2个15 + 14 dp的文本字段布局仅10 dp。尝试将布局高度增加到40 dp并更改textview的尺寸以使用sp