Android setVisibility()未刷新活动布局

Android setVisibility()未刷新活动布局,android,visibility,android-theme,android-holo-everywhere,Android,Visibility,Android Theme,Android Holo Everywhere,我在微调器项目选择中将按钮的可见性设置为可见或消失:- selectUserTypeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id)

我在微调器项目选择中将按钮的可见性设置为可见或消失:-

selectUserTypeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                FilterUserType newUserType = FilterUserType.get(position);
                if(filter.userType != newUserType){
                    filter.userType = newUserType;
                    ScrollView mainScrollView =  (ScrollView) findViewById(R.id.mainLayout);
                    switch (newUserType) {
                    case AnyUser:
                    case CurrentUser:{
                        selectUserBtn.setVisibility(View.GONE);
                        break;
                    }
                    case SpecificUser:{
                        selectUserBtn.setVisibility(View.VISIBLE);
                        break;
                    }
                    default:
                        break;
                    }
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {}

        });
但这也不起作用


仅供参考,我在项目中使用了HoloEverywhere主题,这个微调器来自HoloEverywhere小部件。

我也遇到了同样的问题。holoeverywhere中的微调器类在调用onItemSelected后更新其图形。所以它“覆盖”了布局更新。我找到的唯一解决方案是设置一个处理程序来更新ui,在未来1秒内执行。 像这样:

Handler han = new Handler();
        han.postAtTime(new Runnable() {
            @Override
            public void run() {
                // UPDATE UI HERE
            }
        }, 1000);

我也有同样的问题。holoeverywhere中的微调器类在调用onItemSelected后更新其图形。所以它“覆盖”了布局更新。我找到的唯一解决方案是设置一个处理程序来更新ui,在未来1秒内执行。 像这样:

Handler han = new Handler();
        han.postAtTime(new Runnable() {
            @Override
            public void run() {
                // UPDATE UI HERE
            }
        }, 1000);

@auselen我已尝试使其父视图无效,但似乎不起作用,请您提供一些代码,以便我能清楚地找出我的错误。@e7fendy selectUserBtn是在特定用户选择类型的情况下为用户选择显示的按钮,因此,在任何其他情况下,它都没有在屏幕上可见的目的。事实上,我已经尝试过调试,并且在微调器操作中可见性值正在更改,但在我选择EditText并打开键盘之前,它们不会可见。在要重绘的视图的根目录上调用invalidate。我在Android 2.3和4.2的AVDs上尝试了您的代码,并且你想怎么做就怎么做。您使用哪种设备或AVD进行测试?@auselen我已尝试使其父视图无效,但似乎不起作用,请您提供一些代码,以便我能清楚地找出错误。@e7fendy selectUserBtn是在特定用户选择类型的情况下为用户选择显示的按钮,因此,在任何其他情况下,它都没有在屏幕上可见的目的。事实上,我已经尝试过调试,并且在微调器操作中可见性值正在更改,但在我选择EditText并打开键盘之前,它们不会可见。在要重绘的视图的根目录上调用invalidate。我在Android 2.3和4.2的AVDs上尝试了您的代码,并且你想怎么做就怎么做。您使用哪种设备或AVD进行测试?