簡體   English   中英

Android ViewSwitcher屏幕方向更改

[英]android ViewSwitcher screen orientation change

我在FragmentActivity有一個ViewSwitche ,其中有2個布局文件,每個方向一個。 ViewSwitcherradio group控制。

當我旋轉屏幕時,一切都按預期運行,使用正確的布局文件渲染屏幕。

但是, 屏幕旋轉時會觸發無線電組的onCheckedChanged事件。
該監聽器如下所示(在onCreate創建):

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        //snip
        radios.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int index) {

            viewSwitcher.showNext();
        }
        });
 }

如何在旋轉屏幕時不觸發的情況下在listener調用viewSwitcher.showNext()

好吧,我有點找到了一個駭人聽聞的解決方案,但我希望那里有更好的解決方案。

    private boolean wasRotatedHack;

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.savedInstanceState = savedInstanceState;
    if (savedInstanceState == null) {
        wasRotatedHack = false;
    } else {
        wasRotatedHack = true;
    }

    tabRadios.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int index) {

            if (!wasRotatedHack) {
                viewSwitcher.showNext();
            } else {
                wasRotatedHack = false;
            }
        }
    });

    startInspectionButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(getApplicationContext(), InspectionActivity.class));
        }
    });
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM