下の画像では、行の高さが同じではありませんが、行の高さを同じにする必要があります。
私のプログラムでは、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_height = "10dp"
ただし、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;
}
}
誰もが希望する結果を得るための適切な方法を教えてください。
前もって感謝します。
問題は、インフレータを誤って使用していることです。ルートノードとしてnullを与えないでください
ルートノードとしてnullを渡すと、xmlで設定したすべてのサイズパラメーターが機能しません
正しいコードは
view = inflater.inflate(R.layout.lview_row, parent, false);
http://www.doubleencore.com/2013/05/layout-inflation-as-intended/
MyEventAdapter
クラスのメソッドgetView(int position, View convertView, ViewGroup parent)
をオーバーライドし、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;
}
<?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>
テキストに複数の行がある場合は、テキストを1行に設定して、2行目に来ないようにし、各行の高さを変更します。
テキストに複数の行がある場合は、テキストを1行に設定して、2行目に来ないようにし、各行の高さを変更します。