0

我有一个要移植到 BB10 的 android 应用程序,并且在调整布局大小时遇到​​了一个有趣的问题,即网格视图。

布局相当简单 - 只是一个 Gridview 以及嵌套在相对布局中的其他几个组件。当活动启动时,布局表现得很好 - 所有组件都正确显示,并且 Gridview 图标位于预期位置。

但是,当打开 BB10 的内置操作栏时,在布局调整大小以适应操作栏后,gridview 似乎会完全反转。在 gridview 中选择现在倒置的项目之一实际上选择了应该存在的元素,而不是现在正在显示的元素。

有没有其他人遇到过这个问题/知道一个合理的解决方法?

onCreate 方法也很简单——它只是调用超类的 onCreate 并设置内容视图。

我的布局如下:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/home_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageView
        android:id="@+id/banner_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:adjustViewBounds="true"
        android:src="@drawable/header" />

    <GridView
        android:id="@+id/buttonGrid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/banner_header"
        android:horizontalSpacing="2dip"
        android:numColumns="2"
        android:stretchMode="columnWidth"
        android:verticalSpacing="20dip" />

    <ImageButton
        android:id="@+id/aboutImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="@android:color/transparent"
        android:clickable="true"
        android:src="@drawable/info_gear" />

    <ImageButton
        android:id="@+id/bookmarkImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/aboutImage"
        android:layout_below="@+id/banner_header"
        android:background="@android:color/transparent"
        android:clickable="true"
        android:onClick="onClickBookmarkButton"
        android:src="@drawable/bookmarklist" />

</RelativeLayout>
4

1 回答 1

0

经过几个小时的修补后,我发现将适配器重置为自身而不对其进行任何更改可以解决问题。

((GridView)findViewById(R.id.buttonGrid)).setAdapter(adapter);
于 2013-09-10T19:51:35.630 回答