当我更改应用程序的方向时,应用程序中的列表项会重复,许多项目在横向模式下不可见。
源代码:https://github.com/amar0891/Aroma-Holiday.git
由于声誉较低,我很抱歉没有发布预期输出的图像。
结果输出
答案 0 :(得分:0)
我认为您获得意外结果的原因是您正在if(convertView == null)块内执行视图修改。如果您按如下方式提取代码,我认为它将为您解决问题:
if(convertView == null) {
convertView = activity.getLayoutInflater().inflate(R.layout.item_adapter_view, null);
}
final TextView itemDetailsViews = (TextView) convertView.findViewById(R.id.item_details);
final TextView itemsDescriptionsViews = (TextView) convertView.findViewById(R.id.item_description);
final ImageView itemImagesViews = (ImageView) convertView.findViewById(R.id.item_image);
itemDetailsView.setText(itemDetails[position]);
itemsDescriptionsView.setText(itemDescriptions[position]);
switch (position) {
case 0:
itemImagesViews.setImageResource(R.drawable.plane);
break;
case 1:
itemImagesViews.setImageResource(R.drawable.train);
break;
case 2:
itemImagesViews.setImageResource(R.drawable.bus);
break;
case 3:
itemImagesViews.setImageResource(R.drawable.hotel);
break;
case 4:
itemImagesViews.setImageResource(R.drawable.holiday);
break;
case 5:
itemImagesViews.setImageResource(R.drawable.booking);
break;
case 6:
itemImagesViews.setImageResource(R.drawable.discount);
break;
default:
itemImagesViews.setImageResource(R.drawable.train);
break;
}
答案 1 :(得分:0)
如果我理解正确,您还没有准备好以横向模式显示项目。在这种情况下,您只需在 AndroidManifest .xml:
中执行此操作即可<activity android:name=".MainActivity"
android:screenOrientation="portrait">
此处的主要属性是 screenOrientation 。这声明您的视图处于某种模式。相关的Google网页@ activity-element,搜索screenOrientation。
但是,以前与getView()相关的答案将是更好的解决方案。同时,您可以使用此属性,直到您更愿意处理横向问题。