我有一個ToggleButton,當你點擊它時,我不想讓狀態改變。當我收到來自按鈕切換的反饋後,我會自己處理狀態更改。我怎樣才能防止點擊狀態變化?防止ToggleButton開關狀態
4
A
回答
0
雖然我認爲你可以將它標記爲禁用,但我不認爲這是一個好主意,因爲用戶習慣於這種按鈕的某種語義。
如果您只想顯示某種狀態,爲什麼不使用ImageView並根據狀態顯示不同的圖像?
4
您可以實施自己的ToggleButton
,並使用空體覆蓋toggle()
方法。
1
您可以簡單地使用CheckedTextView代替。
當然,您需要根據狀態設置背景圖像和文本,但除了那些(您可能已經使用過)以外,這是一個很好的替代解決方案。
這裏的情況下,示例代碼你錯過了紋元和textOff屬性:
CheckableTextView.java:
public class CheckableTextView extends CheckedTextView {
private CharSequence mTextOn, mTextOff;
public CheckableTextView (final Context context, final AttributeSet attrs, final int defStyle) {
super(context, attrs, defStyle);
final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CheckableTextView, defStyle, 0);
mTextOn = a.getString(R.styleable.CheckableTextView_textOn);
mTextOff = a.getString(R.styleable.CheckableTextView_textOff);
a.recycle();
}
public CheckableTextView(final Context context, final AttributeSet attrs) {
this(context, attrs, 0);
}
public CheckableTextView(final Context context) {
this(context, null, 0);
}
@Override
public void setChecked(final boolean checked) {
super.setChecked(checked);
if (mTextOn == null && mTextOff == null)
return;
if (checked)
super.setText(mTextOn);
else
super.setText(mTextOff);
}
public void setTextOff(final CharSequence textOff) {
this.mTextOff = textOff;
}
public void setTextOn(final CharSequence textOn) {
this.mTextOn = textOn;
}
public CharSequence getTextOff() {
return this.mTextOff;
}
public CharSequence getTextOn() {
return this.mTextOn;
}
}
在res /價值/ attr.xml
:
<declare-styleable name="SyncMeCheckableTextView">
<attr name="textOn" format="reference|string" />
<attr name="textOff" format="reference|string" />
</declare-styleable>
另一可能的解決方案是在ToggleButton上使用setClickable(false),並在動作動作爲ACTION_UP時處理onTouchListener。
相關問題
- 1. 延遲開關狀態在togglebutton點擊
- 2. ToggleButton狀態OnClick
- 3. togglebutton記住狀態
- 4. ToggleButton開啓和關閉狀態的文本標籤放置
- 5. Android防止保存狀態
- 6. 防止狀態耦合?
- 7. Silverlight Togglebutton Set IsPressed狀態
- 8. 防止Flyout動態打開
- 9. 防止單擊toggleButton時選擇GtkTreeRow
- 10. 如何防止猴子打開狀態欄?
- 11. 如何防止Wifi處於關閉狀態
- 12. 當你打開屏幕時,ToggleButton狀態被清除(Android)
- 13. 防止保存狀態懸停在fabricjs
- 14. DialogFragment:如何防止保存狀態?
- 15. 防止狀態欄變成雙高度?
- 16. SQL:從狀態顯示防止數據
- 17. 防止CSS狀態更新,下降
- 18. 防止Firefox頁面狀態緩存
- 19. 如何防止UISwitch改變狀態?
- 20. Android 5.0,防止狀態欄擴展
- 21. 防止在iPad中懸停狀態
- 22. 防止懸停在活動狀態
- 23. 防止腳本輸出狀態代碼
- 24. UI-Router:防止訪問父狀態
- 25. 防止UISwitch改變UI狀態
- 26. 更改狀態時防止狀態重新加載ui-router
- 27. 如何防止引導模態在模態處於活動狀態時打開
- 28. WPF ToggleButton與檢查+按下狀態
- 29. 如何檢查ToggleButton的啓動狀態
- 30. 綁定到WPF ToggleButton的IsChecked狀態
我用tgl.setChecked(!tgl.isChecked());在我的onClick監聽器中。 (tgl os ToggleButton視圖) – 2016-03-02 19:54:23