나는 ListView에서 이상한 행동을하고 있습니다.android의 ListView 행의 동적 높이
일부 데이터가 채워진 ListView가 있습니다. 각 행에는 이미지와 세 개의 텍스트 레이블이 있습니다. 다음 행에 대한 내 XML이야 (I은 어댑터의 getView
방법에 올리는거야)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="0dip"
android:paddingBottom="0dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView android:id="@+id/Icon"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:padding="2dp"
android:scaleType="fitCenter"
android:contentDescription="@string/app_icon"/>
<TextView android:id="@+id/TxtName"
android:scrollHorizontally="false"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@android:color/black"
android:background="@color/list_bg1"
android:layout_weight="2"
android:padding="2dp"/>
<TextView android:id="@+id/TxtPackage"
android:scrollHorizontally="false"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2"
android:textColor="@android:color/black"
android:background="@color/list_bg2"
android:padding="2dp"/>
<TextView android:id="@+id/TxtSource"
android:scrollHorizontally="false"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2"
android:background="@color/list_bg3"
android:textColor="@android:color/black"
android:padding="2dp"/>
</LinearLayout>
을 이제, 텍스트 필드에 들어가는대로 (80 ~ 100 자 몇 자에서) 어떤 아이폰에의 할 수있다 래핑 된 라벨의 높이를 수용하기 위해 라벨을 단지 감싸고 행의 높이를 확장하고 싶습니다.
그러나 레이블의 줄이 잘리지 만 행의 높이가 확장되지 않으므로 레이블의 아래쪽이 잘립니다. 모든 내용에 맞게 자동으로
@Override
public View getView(int position, View convertView, ViewGroup parent) {
SetInfo app = (SetInfo)getItem(position);
if(app == null)
return null;
LinearLayout row = (LinearLayout) (convertView == null
? LayoutInflater.from(context).inflate(R.layout.listitem, parent, false)
: convertView);
((TextView)row.findViewById(R.id.TxtName)).setText(app.getName());
((TextView)row.findViewById(R.id.TxtPackage)).setText(app.getPackage());
((TextView)row.findViewById(R.id.TxtSource)).setText(app.getSource());
if(app.getIcon() != null)
((ImageView)row.findViewById(R.id.Icon)).setImageDrawable(app.getIcon());
return row;
}
가 어떻게 서로 다른 높이로 행을 가질 수 조정 : 여기 내 getView
방법입니까?
더 나은 방법은 android : maxLines = 1 행 레이아웃에서 Textview에서 한 줄 이상의 텍스트 방지 –
android : layout_weight를 1 또는 그 이상으로 조정 해 보셨습니까? –
@Samir : 정확한 반대를 원합니다. 모든 텍스트를 표시해야하므로 레이블을 반드시 포장해야합니다. –