我想更改FrameLayout
的视图层,并尝试调用bringToFront()
方法。它不起作用。然后,我试着setVisibility(View.GONE)
和setVisibility(View.VISIBLE)
. 同样,它不起作用。
事实上,这两种方法都可以只更改顶层一次。第二次,他们都失败了。
我该怎么做?
private void next(){
if(currentPage < MAX_INDEX){
currentPage++;
//indicator[currentPage].bringToFront();
for(int i=0; i < MAX_INDEX; ++i){
indicator[i].setVisibility(View.INVISIBLE);
}
Log.d("current page:", "current page = " + currentPage);
indicator[currentPage].setVisibility(View.VISIBLE);
} else {
startActivity(new Intent(SetupActivity.this, MainActivity.class));
SetupActivity.this.finish();
}
}
注意: removeAllViews()
然后addView()
对我有用。任何想解释为什么我不能使用bringToFront()
和setVisibility()
方法的人,将不胜感激!
然后试试这段代码...
private void next(){
if(currentPage < MAX_INDEX){
currentPage++;
//indicator[currentPage].bringToFront();
framelayout.removeAllViews();
Log.d("current page:", "current page = " + currentPage);
framelayout.addView(indicator[currentPage]);
} else {
startActivity(new Intent(SetupActivity.this, MainActivity.class));
SetupActivity.this.finish();
}
}
在你调用 bringToFront() 之后,另外两个方法:requestLayout() 和 invalidate() 应该在视图的父视图上调用,以强制父级重绘;
您可以在下面参考http://developer.android.com/reference/android/view/View.html#bringToFront()