0

正在达到声明并打印日志,但视图根本没有改变。textview 的文本不会改变,“bar”(FrameLayout)的可见性也不会改变。

可能是什么问题呢?多谢你们。

mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                if (mViewPager.getCurrentItem() == MyPageAdapter.DISCOVERY) {
                    findViewById(R.id.pullupTitleBar).setVisibility(1);
                    ((TextView) findViewById(R.id.pullUpTitle)).setText("My Title 1");
                    Log.i("test","DICOVERY PAGE");
                } else 
                if (mViewPager.getCurrentItem() == MyPagerAdapter.EVENTS) {
                    findViewById(R.id.pullupTitleBar).setVisibility(1);
                    ((TextView) findViewById(R.id.pullUpTitle)).setText("My Title 2");
                    Log.i("test","EVENTS PAGE");
                } else {
                    findViewById(R.id.pullupTitleBar).setVisibility(0);
                    Log.i("test","MAKE BAR NOT VISIBLE");
                }
            }

});
4

3 回答 3

1

使用View.VISIBLE而不是将幻数传递1setVisibility. VISIBLE 的常数值为 0,VISIBLE 的值为 4,INVISIBLE而 VISIBLE 的值为 8GONE

于 2013-10-23T12:41:09.437 回答
0

您应该将 mViewPager.notifyDataSetChanged() 添加到侦听器。

于 2013-10-23T13:15:52.480 回答
0

文本不变的问题原来是我在侦听器中按 ID 查找视图。实际上它导致了超时并阻止了文本的更新。

所以不要使用:

findViewById(R.id.pullupTitleBar).setVisibility(1);

我现在在 onCreate 中创建一个实例并使用它(如下所示):

相对布局 rLayout;

onCreate(..){
...
rLayout = findViewById(R.id.pullupTitleBar).setVisibility(View.VISIBLE);
}

参考blackbelt对问题后半部分的回答,如果你使用了他的回答,别忘了给他+1!

感谢您的帮助:)。

于 2013-10-23T14:24:57.417 回答