我在将 320*50 View 展开为全屏时遇到了问题。
如果我直接展开它,它可以工作,但 Action 非常突然,我认为这不是一个好的用户体验。所以我先隐藏 View ,然后展开它,两秒钟后,再次显示 View 。
TextView.setVisibility(VIEW.INVISIBLE);
ViewGroup.LayoutParams lp = TextView.getLayoutParams();
lp.width = ViewGroup.LayoutParams.FILL_PARENT;
lp.height = ViewGroup.LayoutParams.FILL_PARENT;
//after two seconds
handler.postDelay(new Show(),2000);
class Show implements Runnable{
@Override
public void run(){
TextView.setVisibility(VIEW.VISIBLE);
}
}
所以我留了两秒钟让应用程序展开 View 。两秒钟后, View 将再次显示。我希望 View 在显示时扩展到全屏。但实际上,它没有。 View 在显示后执行展开操作,而不是在它隐藏的两秒内执行。
最佳答案
- 将
android:animateLayoutChanges="true"
添加到您的ViewGroup
。 - 使用
setVisibility()
控制您的目标View
的可见性。 如果你target
View
下面还有其他View
,添加android:animateLayoutChanges="true"
到你的outerViewGroup
和setVisibility()
之前的代码:LayoutTransition layoutTransition = rootLinearLayout.getLayoutTransition(); layoutTransition.enableTransitionType(LayoutTransition.CHANGING);
关于android - 如何在Android中顺利展开 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13251835/