正在达到语句并打印日志,但视图根本没有更改。文本视图的文本没有变化,并且'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");
}
}
});
答案 0 :(得分:1)
使用View.VISIBLE
而不是将幻数1
传递给setVisibility
。 VISIBLE的常数值为0,INVISIBLE
的常数值为4,GONE
的值为8
答案 1 :(得分:0)
您应该将mViewPager.notifyDataSetChanged()添加到侦听器。
答案 2 :(得分:0)
Text not not changing问题原来是我在侦听器中通过ID查找视图。实际上它导致超时并停止更新文本。
所以不要使用:
findViewById(R.id.pullupTitleBar).setVisibility(1);
我现在正在onCreate中创建一个实例并使用它(如下所示):
RelativeLayout rLayout;
onCreate(..){
...
rLayout = findViewById(R.id.pullupTitleBar).setVisibility(View.VISIBLE);
}
请参阅blackbelt对问题后半部分的回答,如果您使用了他的答案,请不要忘记给他+1!
感谢帮助人:)。