更改方向列表项时正在重复

时间:2015-03-17 18:46:45

标签: android android-layout android-fragments

当我更改应用程序的方向时,应用程序中的列表项会重复,许多项目在横向模式下不可见。

源代码:https://github.com/amar0891/Aroma-Holiday.git

由于声誉较低,我很抱歉没有发布预期输出的图像。

结果输出

2 个答案:

答案 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()相关的答案将是更好的解决方案。同时,您可以使用此属性,直到您更愿意处理横向问题。