0
我用谷歌UserRowView類作爲如何才能覆蓋dispatchAccessibilityEvent()的模板有話語提示說自定義消息:如何在列表項獲得焦點時更改「話語提示」語音?
public class UserRowView extends LinearLayout {
.
.
public void setText(String text)
_message = text;
}
@Override
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent accessEvent) {
Context ctx = this.getContext();
accessEvent.setClassName(getClass().getName());
accessEvent.setPackageName(ctx.getPackageName());
accessEvent.getText().clear();
accessEvent.getText().add(_message);
return true;
}
列表項佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:background="@color/all_white">
<ImageView
android:id="@+id/catalog_entry_image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/member_active" />
<com.topiatechnology.skoot.android.util.UserRowView
android:id="@+id/catalog_entry_user_row_view"
android:orientation="vertical"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
>
<TextView
android:id="@+id/catalog_entry_name_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/catalog_entry_size_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/catalog_entry_date_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:id="@+id/catalog_entry_progress_bar"
android:visibility="gone"
/>
</com.topiatechnology.skoot.android.util.UserRowView>
</LinearLayout>
我在ListView的適配器中的getView()方法中設置文本。
問題在於,TalkBack不會更改列表項目關注時所說的文本。
對於上面的佈局,三個TextViews的文本被說出來,而我想要我設置的文本被說出。我怎樣才能做到這一點?
在我嘗試覆蓋dispatchPopulateAccessibilityEvent之前,我一直在設置內容描述,但忘記使視圖無效。我在您的建議中刪除了覆蓋。一旦我在調用setContentDescription之後使視圖無效,說明就被朗讀了。值得注意的是,我注意到佈局中視圖的內容描述仍在使用中。 – benkdev
您能檢查您正在運行的TalkBack的版本嗎?設置>應用程序>所有> TalkBack – alanv
我正在運行版本3.1.1_r68。 – benkdev