如何设置ListView行高

use*_*278 40 android android-layout android-listview baseadapter

我正在向您展示下面的图像,其中行的高度不同我希望行应该具有相同的高度.

在此输入图像描述

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

<?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>
Run Code Online (Sandbox Code Playgroud)

我已经设定了高度

机器人:layout_height = "10dp"

但是在listView上进行diplaying时仍然不一样.

这是我为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;
     }
 }
Run Code Online (Sandbox Code Playgroud)

任何人都请我以正确的方式获得所需的结果.

提前致谢.

小智 138

问题是你误用了充气机,不要把null作为根节点

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

正确的代码是

view = inflater.inflate(R.layout.lview_row, parent, false);
Run Code Online (Sandbox Code Playgroud)

http://www.doubleencore.com/2013/05/layout-inflation-as-intended/


Too*_*rop -2

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