画廊视图中的视图在无效或导航时失去“焦点”

时间:2011-10-04 07:01:13

标签: android android-layout xamarin.android

我创建了一个带有2个视图的图库视图和3个简单的TextView来呈现一些 我的数据模型中的数据。 在2个视图上调用Invalidate方法就像是 当我在图库视图中导航时,视图会失去焦点。

“焦点”丢失后,文字几乎变得不可读。 (见下面的两张图片)

我正在使用Monodroid,但也会感谢常规Android示例。

我的图库视图的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
  <Gallery
    android:id="@+id/locationGallery"
    android:layout_height="match_parent"
    android:layout_width="fill_parent">

  </Gallery>
</LinearLayout>

我放入图库视图的两个视图的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:gravity="top"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="3sp"
    android:id="@+id/locationGalleryItem"
    >

  <TextView
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
        android:padding="10dp"
    android:textSize="16sp"
    />
  <TextView
  android:id="@+id/text2"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_below="@id/text1"
      android:padding="10dp"
    android:textSize="16sp"
    />
  <TextView
  android:id="@+id/text3"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_below="@id/text2"
      android:padding="10dp"
    android:textSize="16sp"
    />

</LinearLayout>

enter image description here enter image description here

2 个答案:

答案 0 :(得分:2)

我通过在Gallery View上为ItemSelected属性创建一个EventHandler来解决问题。此EventHandler跟踪Gallery View的当前位置。然后将Gallery View上的方法SetSelection调用到当前位置。这给出了期望的结果。

代码:

locationGallery.ItemSelected += new EventHandler<ItemEventArgs>(locationGallery_ItemSelected);

void locationGallery_ItemSelected(object sender, ItemEventArgs e)
{
    var send = sender as Gallery;
    send.SetSelection(e.Position);
}

答案 1 :(得分:0)

我想解决问题的最简单方法是将以下内容添加到您的图库中(除非您当然需要它):

android:unselectedAlpha="1.0"