업데이트 제안 된대로 데이터보기 소유자를 내 코드에 추가했지만 여전히 동일한 문제에 직면하고 있습니다. 제 질문을 편집했으며 제 코드를 살펴보십시오.사용자 지정 목록보기의 행 위치 번호에 혼동이 있음
줄 번호에 따라 내 목록보기에 2 개의보기를 표시하려고합니다. 첫 번째 행에는 오른쪽 열차 엔진을, 두 번째 행에는 왼손 열차 엔진을 표시하고 그 반대의 경우도 표시하려고합니다.
그 반대의 경우 행보기 변경 조건 및 확인 위치를 mod % 2 == 0이라면 이상하게도 이상합니다.하지만 앱을 실행하면 정확한 왼쪽 오른쪽 표시가됩니다.하지만 아래로 스크롤하면 두 개의 오른손 열차 열차를 하나씩 가지고 있습니다. 여기
는 List_row1.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="500dp"
android:background="@drawable/list_selector"
android:orientation="horizontal"
android:padding="5dip" >
<include android:id="@+id/mainview" layout="@layout/activity_main" />
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<include android:id="@+id/train" layout="@layout/train" />
</HorizontalScrollView>
코드
public LazyAdapter(Activity a, ArrayList<String> songsList) {
activity = a;
data=songsList;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
Log.d("Listview","Count is"+data.size());
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
Log.d("position is - ", "position is "+position);
if(position%2==0)
{
return 0;
}
else
{
return 1;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
int type = getItemViewType(position);
System.out.println("getView " + position + " " + convertView + " type = " + type);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case 0:
convertView = inflater.inflate(R.layout.list_row1, null);
holder.caption = holder.caption = ((ImageView)convertView.findViewById(R.id.train).findViewById(R.id.boogi1).findViewById(R.id.imageView1));
break;
case 1:
convertView = inflater.inflate(R.layout.list_row2, null);
holder.caption = holder.caption = ((ImageView)convertView.findViewById(R.id.train2).findViewById(R.id.boogi2).findViewById(R.id.imageView1));
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
return convertView;
}
static class ViewHolder {
ImageView caption;
}
입니다 Train2.xml에서
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<include android:id="@+id/boogi1" layout="@layout/boogi" />
<include android:id="@+id/boogi2" layout="@layout/boogi" />
<include android:id="@+id/engine" layout="@layout/engine" />
train.xml 태그 순서 변경 포함.
어떻게'list_row2'와'list_row1'가 다른 배경과 다른가요? –
list_row 1에 2 개의 include 태그가 있고 열차 엔진의 이미지 뷰가 하나 이상이며 list_row2에 첫 번째 열차 엔진 이미지 뷰가 있고 이후에 선형 레이아웃의 태그가 2 개 포함되지만 방향은 수평입니다. –