我有一個ListView
我已經定義了每個項目在一個單獨的XML文件中的佈局。在這個文件中我包含了一個RatingBar
和一個EditText
。Buggy ListView讓我很難過
我編程式創建了7-8項這ListView
。當我滾動瀏覽它們時,它看起來很麻煩。下面是一些例子:
如果我設置聚焦到
EditText
第一排,然後向下滾動ListView
,隨機EditTexts
從其他行會的焦點。好像是在聚焦的人消失後的下一個EditText
受到關注。也許這是故意的,但作爲一個用戶,這似乎很奇怪。如果我將焦點設置爲
EditText
,接收虛擬鍵盤,輸入內容,然後單擊虛擬鍵盤上的「完成」按鈕,EditText
將在虛擬鍵盤消失後立即清空。有時,當我點擊一個
EditText
,接收一個虛擬鍵盤並開始輸入字母時,一旦我輸入字母,這些字母就會消失。當我點擊一個
EditText
,虛擬鍵盤顯示自己,但EditText
失去了重點,我不得不再次點擊EditText
。儘管我已將
RatingBar
設置爲focusable="false"
,但如果我移動滾輪,它仍會抓住焦點。
我的一個問題是所有可見的列表項獲得重繪當我輸入的虛擬鍵盤的字符(和自EditText
的文本設置爲一些數據,裏面是空的,它被清除。我不明白爲什麼Android會在每次鍵入字符時決定重新繪製列表
下面是我用來繪製它們的XML:它們是白色的氣泡,灰色的邊框和一些文字,一個RatingBar
和一個EditText
裏面:
<?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="wrap_content"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:paddingLeft="15dip"
android:paddingRight="15dip"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="2dip"
android:background="@drawable/shape_outer">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="2dip"
android:background="@drawable/shape_inner">
<TextView
android:id="@+id/rating_category"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/dark_gray"
android:textStyle="bold"
android:layout_marginBottom="10dip" />
<RatingBar
android:id="@+id/rating_rating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="0"
android:stepSize="1"
android:focusable="false"
android:clickable="false"
/>
<EditText
android:id="@+id/rating_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_column="1"
android:padding="6dip"
android:textColor="#000000"
android:gravity="left|top"
android:lines="3"
android:hint="Comment"
android:imeOptions="actionDone" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
我剛剛投了票,因爲我愛你的問題名稱。你的虛擬設備有多強大? – Nix 2010-08-12 14:35:33
我同意尼克斯。 – Mike 2010-08-12 14:36:47
哈哈,謝謝。我在創建虛擬設備時所做的唯一一件事(我只是在這裏輸入了「VD」,並認爲我將它拼出來)是鍵入一個名稱並選擇目標(2.1)。其他一切都是默認的。 – Andrew 2010-08-12 14:38:24