我有一些視圖。
我有一些看法。我希望如果一個專案被選中,另一個應該自動取消選擇。當(如圖所示),如果假設第二項(這里的文本是100)被選中,第一個選擇應該被取消選擇。我怎樣才能保持對所選專案的參考并取消對其他專案的選擇呢?我在某處了解到單選按鈕是用于這些方面的,但誰能展示一下呢?
uj5u.com熱心網友回復:
當你呼叫你的 "選擇 "方法時,在代碼中它應該首先清除你之前存在的任何選擇。你可以通過檢查每個符合條件的選擇的屬性/狀態來做到這一點,然后反轉你選擇它的方法。你也可以保留一個對當前選擇的參考,作為一種黑客手段,并不斷地更新它,當有新的選擇出現時,就用它來取消選擇。
uj5u.com熱心網友回復:
假設你指的是通過 "選擇 "來改變背景等,你可以遍歷父ViewGroup(例如ConstraintLayout、LinearLayout等),并選擇你的目標視圖,并取消對其余視圖的選擇,如以下代碼。
void toggleView(View view, boolean selected){
if (selected) {
view.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getContext(), R.color.bg_grey_2))。
} else {
view.setBackgroundTintList(null)。
}
}
void selectOneViewAndUnselectOthers(ViewGroup parentView, View ViewToSelect) {
for (int i = 0; i < parentView.getChildCount(); i ) {
View tmpView = parentView.getChildAt(i);
if (tmpView.getId() == viewToSelect.getId() ) {
toggleView(viewToSelect, true)。
} else {
toggleView(tmpView, false)。
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/329140.html
標籤:
下一篇:如何改變底部導航指示器的寬度

