首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓ViewSwitcher屏幕方向改变

安卓ViewSwitcher屏幕方向改变
EN

Stack Overflow用户
提问于 2012-06-21 07:00:38
回答 1查看 592关注 0票数 0

我在一个FragmentActivity中有一个FragmentActivityr,其中有两个布局文件,每个方向一个。ViewSwitcherradio group控制。

当我旋转屏幕时,一切都如我所期望的那样,正确的布局文件被用来呈现屏幕。

然而,无线电组的onCheckedChanged事件是在屏幕旋转时触发的。

它的监听器看起来如下(在onCreate中创建):

代码语言:javascript
复制
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        //snip
        radios.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int index) {

            viewSwitcher.showNext();
        }
        });
 }

当屏幕旋转时,如何在不触发viewSwitcher.showNext()的情况下在listener中调用它?

EN

回答 1

Stack Overflow用户

发布于 2012-06-21 07:20:05

好吧,我找到了一个麻烦的解决方案,但我希望有一个更好的解决办法。

代码语言:javascript
复制
    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));
        }
    });
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11133092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档