是否可以追加到底什麼將被讀取的佈局?設置根視圖的內容描述將覆蓋所有內容,然後不讀取子視圖。此外,佈局的getContentDescription()不會返回實際讀取的內容作爲其所有子項的組合 - 它只返回爲佈局顯式設置的內容,如果沒有設置,則爲null。Android對講輔助功能 - 追加到內容說明的結尾
我正在考慮增加一個虛擬視圖的佈局正好有文本閱讀對講,但似乎哈克。
特別是,我們正在尋找有補充說明,以對講,如「這是選擇輕按兩下則可取消選擇」和其他類似的描述。
是否可以追加到底什麼將被讀取的佈局?設置根視圖的內容描述將覆蓋所有內容,然後不讀取子視圖。此外,佈局的getContentDescription()不會返回實際讀取的內容作爲其所有子項的組合 - 它只返回爲佈局顯式設置的內容,如果沒有設置,則爲null。Android對講輔助功能 - 追加到內容說明的結尾
我正在考慮增加一個虛擬視圖的佈局正好有文本閱讀對講,但似乎哈克。
特別是,我們正在尋找有補充說明,以對講,如「這是選擇輕按兩下則可取消選擇」和其他類似的描述。
首先開始通過分離所述內容描述,它描述了元件,和使用提示,它描述瞭如何與元件進行交互。
如果ViewGroup中沒有明確的內容描述,它會嘗試通過比較需求的ViewGroup的孩子的描述推斷描述。
您應該設置了一個ViewGroup明確的內容描述。 I advocate going further and making the children inaccessible directly。
此行爲意味着你有完全的控制,並改變爲未來的佈局將不包括在的ViewGroup也改變了內容描述的副作用。與選擇狀態追加
一種方法是使用自定義的ViewGroup:
public class SelectStateDescribingLinearLayout extends LinearLayout {
public SelectStateDescribing(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public CharSequence getContentDescription() {
CharSequence contentDescription = super.getContentDescription();
return isSelected() ? appendSelectedTo(contentDescription) : contentDescription;
}
private String appendSelectedTo(CharSequence contentDescription) {
return getResources().getString(R.string.viewgroup_selected, contentDescription);
}
}
其中R.string.viewgroup_selected
是一個字符串資源解析爲:<string name="viewgroup_selected">%1$s selected</string>
對於使用提示(「槍王選擇/取消選擇「),您可以使用可訪問性委託。這question has been answered here。