Android 如何设置ListView行的高度

Android 如何设置ListView行的高度,android,android-layout,android-listview,baseadapter,Android,Android Layout,Android Listview,Baseadapter,我给你们看下面的图片,其中的行的高度不一样,我希望行的高度应该相同 在我的程序中,我从我解析的XML服务中获取数据,并在列表视图中显示结果,但列表视图行的高度不同 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:b

我给你们看下面的图片,其中的行的高度不一样,我希望行的高度应该相同

在我的程序中,我从我解析的XML服务中获取数据,并在列表视图中显示结果,但列表视图行的高度不同

<?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>

我已经设定了高度

android:layout\u height=“10dp”

但在listView上显示时仍然不一样

这是我的GetVIEW自定义适配器:-

 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;
     }
 }
公共类MyEventAdapter扩展BaseAdapter{
ArrayListlistTitle;
ArrayListlistFullText;
活动;
公共MyEventAdapter(活动活动,ArrayListlistTitle,ArrayListlistFullText){
超级();
this.listTitle=listTitle;
this.listFullText=listFullText;
这个。活动=活动;
}
public int getCount(){
//TODO自动生成的方法存根
返回listTitle.size();
}
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回null;
}
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回0;
}
私有类视窗持有者{
TextView-txtViewTitle;
TextView txtViewTitleTwo;
}
公共视图getView(内部位置、视图视图、视图组父视图){
//TODO自动生成的方法存根
持票人名称;
LayoutInflater充气器=活动。getLayoutInflater();
如果(视图==null){
视图=充气机。充气(R.layout.lview_行,空);
title=新的ViewHolder();
title.txtViewTitle=(TextView)view.findViewById(R.id.txtItem);
title.txtViewTitleTwo=(TextView)view.findViewById(R.id.txtItemTwo);
view.setTag(标题);
}否则{
title=(ViewHolder)view.getTag();
}
title.txtViewTitle.setText(listTitle.get(position));
title.txtViewTitleTwo.setText(listFullText.get(position));
返回视图;
}
}
任何人请告诉我获得期望结果的正确方法


提前感谢。

首先,您应该使用sp来指定文本的大小,而不是倾斜(dp),其次,我认为您有一些相互矛盾的维度,在只有10 dp的布局中,有两个15+14 dp的文本字段。尝试将布局高度增加到40 dp,并更改文本视图的尺寸以使用sp

覆盖方法
getView(int-position,View-convertView,ViewGroup-parent)
MyEventAdapter
类中使用
View.setMinimumHeight(minHeight)设置最小视图高度

使用“getView(int位置,视图转换视图,视图组父对象)”方法设置视图的最小高度,如下所示:

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;    
}


如果文本中有多行,请将文本设置为单行,这样它就不会出现在第二行中,并更改每行的高度。

问题在于您错误地使用了充气机,不要将null作为根节点

如果将null作为根节点传递,则在xml中设置的所有大小参数都无法工作

正确的代码是

view = inflater.inflate(R.layout.lview_row, parent, false);

如果文本中有多行,则将文本设置为单行,这样它就不会出现在第二行中,并更改每行的高度。

如果使用自定义适配器,则从自定义适配器发布getView方法的代码。您的实现应该可以工作,你一定在别的地方做了什么:)。嗨@BharatSharma我刚刚发布了我的自定义适配器代码请看一看谢谢…在你的代码上运行lint,使用view.setMinimumHeight(minHeight)
MyEventAdapter
类的
getView()方法中设置视图的高度即使这有一定的意义,但并不适用于所有情况。更好的答案需要更多的内省,因为提供的链接没有深入挖掘真正的问题。有些项目隐藏起来,请帮助
view = inflater.inflate(R.layout.lview_row, parent, false);