我有一个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并没有实际用途。因此,其中之一是无用的,因为这是多余的。 编辑 当版式只有一个孩子也是版式时,将触发此警告。在这种情况下,两者都可以移除而没有任何问题。建议删除这些多余
我的Android应用程序的一个活动使用带有两个TextView和一个imageview的linearlayout。textviews和imageview从sqlite数据库获取数据。我还有两个按钮(上一个,下一个)在数据库中来回导航。工作正常。 现在,我想给我的应用程序添加动画:当我按下下一步按钮时,线性布局(带有文本视图和图像)应该向左滑动,包含下一行数据的线性布局应该向右滑动。另一种方法是上