我有一个RelativeLayout,其中两个LinearLayout和一个TextView(三个都是孩子)共享同一个空间,这意味着在任何给定点上,只有一个视图可见,而其他两个视图消失。在应用程序启动时,TextView是可见视图。我有一个按钮,可以启动动画,使文本视图淡出,线性布局淡入。另一个线性布局还有一个按钮。
逻辑如下:
按下按钮-
只要上面的交互使用相同的按钮(对于相同的线性布局),这就可以非常好地工作。按下另一个LinearLayout(线性布局)按钮后,另一个LinearLayout(线性布局)将在文本视图淡出期间短暂显示,然后相应的LinearLayout(线性布局)将淡入。按下“后退”按钮时也会发生同样的情况:另一条线性布局在淡出和淡入之间短暂显示。
有什么想法吗?
fadeOut = AnimationUtils.loadAnimation......
fadeIn = AnimationsUtils......
fadeOut.setAnimationListener(this)
......
.....
public void buttonOnClick(View v) {
int id = v.getId();
switch(id) {
case R.id.get_started:
viewState = SIGNUP_STATE;
toggleWelcomeViews(HIDE);
toggleSignupViews(SHOW);
break;
case R.id.already_have_account:
viewState = LOGIN_STATE;
toggleWelcomeViews(HIDE);
toggleLoginViews(SHOW);
break;
}
......
....
public void toggleSignupViews(int flag) {
/*
int action = (flag == SHOW) ? View.VISIBLE : View.GONE;
signupForm.setVisibility(action);
whyPhoneLink.setVisibility(action);
submitButton.setVisibility(action);
*/
if (flag == SHOW) {
if (NetworkConfig.debug) Log.i(LOG_TAG, "fade in signup views");
signupForm.setVisibility(View.VISIBLE);
whyPhoneLink.setVisibility(View.VISIBLE);
submitButton.setVisibility(View.VISIBLE);
submitButton.setClickable(true);
signupForm.startAnimation(fadeIn);
whyPhoneLink.startAnimation(fadeIn);
submitButton.startAnimation(fadeIn);
} else {
if (NetworkConfig.debug) Log.i(LOG_TAG, "fade out signup views");
signupForm.startAnimation(fadeOut);
whyPhoneLink.startAnimation(fadeOut);
submitButton.startAnimation(fadeOut);
signupForm.setVisibility(View.INVISIBLE);
whyPhoneLink.setVisibility(View.INVISIBLE);
submitButton.setVisibility(View.INVISIBLE);
submitButton.setClickable(false);
}
}
......
......
public void onBackPressed() {
switch(viewState){
case WELCOME_STATE:
// exit app..
super.onBackPressed();
break;
case SIGNUP_STATE:
// hide signup views and show welcome views
viewState = WELCOME_STATE;
leavingState = SIGNUP_STATE;
toggleSignupViews(HIDE);
toggleWelcomeViews(SHOW);
break;
case LOGIN_STATE:
// hide login views and show welcome views
viewState = WELCOME_STATE;
leavingState = LOGIN_STATE;
toggleLoginViews(HIDE);
toggleWelcomeViews(SHOW);
break;
}
}
@Override
public void onAnimationEnd(Animation animation) {
if (NetworkConfig.debug) Log.i(LOG_TAG, "animation ended");
if (leavingState == SIGNUP_STATE) {
signupForm.setVisibility(View.INVISIBLE);
whyPhoneLink.setVisibility(View.INVISIBLE);
submitButton.setVisibility(View.INVISIBLE);
submitButton.setClickable(false);
} else if (leavingState == LOGIN_STATE) {
loginForm.setVisibility(View.INVISIBLE);
forgotPassword.setVisibility(View.INVISIBLE);
submitButton.setVisibility(View.INVISIBLE);
submitButton.setClickable(false);
}
}
所有缺失开关的逻辑。。。()功能与上述相同。我试着把视线。onAnimationEnd中的代码消失了,但结果是一样的(错误仍然存在)。
当我打开视图控制器时,我有一个从顶部飞出的视图。我已将UIView的Y约束设置为-200,当视图加载时,将调用以下内容,一切正常: 但是现在我有一个关闭按钮,它应该将动画回到-200位置,然后从屏幕上删除视图控制器。但是这个动画没有发生。视图控制器被直接删除。这是我正在做的: 我提到了这个链接。这似乎对他们有效,但对我无效。请帮忙。
我正在创建一个我想要的相对布局,应该从上面滑到布局,所以这里是我所做的 使布局不可见 在oncreate中将屏幕上方的布局动画化 在onWindowsFocusChanged()中,我调用了动画,使布局可见,并希望布局滑入屏幕 但是 当视图被创建时,布局在其正确的位置,显示任何来自屏幕顶部的滑动效果 布局 这是activity的主题
我在它的列表视图中有一个导航抽屉,里面装满了项目,抽屉底部有一个线性布局,这是另一个选项。当单击列表中的任何项目时,它们的容器会以材质涟漪效果很好地进行动画制作。我想知道如何在列表外的linearlayout按钮上启用相同的效果。
我错过了什么? 为了便于阅读,这里提供了一个要点,并附带了一个测试用例:https://Gist.github.com/teyc/5668517
问题内容: 是Android开发的新手。我已经创建了一个android应用,下面是我的main.xml 正在收到以下警告: 谁能说出此警告的原因和解决方案。 问题答案: 在RelativeLayout中仅使用LinearLayout并没有实际用途。因此,其中之一是无用的,因为这是多余的。 编辑 当版式只有一个孩子也是版式时,将触发此警告。在这种情况下,两者都可以移除而没有任何问题。建议删除这些多余
我有一个自定义视图CustomLayout(蓝色,自定义UIView),该视图包含3个子视图,通过使用约束(布局锚定)垂直对齐,每个视图按照以下顺序对齐: 1视图:幻灯片(红色,自定义UIView) 我想,当我单击按钮(黄色)时,如果使用动画打开,SlideLayout(红色)的高度大小会增加,如果关闭,则会减少。和其他视图必须在动画期间更改位置,如果SlideLayout增加/减少,则父视图(C