我有一个隐藏在视图中的布局.在按钮上单击,我希望它从底部向上滑动,向上推动整个屏幕内容,非常类似于whatsapp在聊天屏幕中显示表情符号面板的方式.
我见过SlIDingDrawer,这对我不起作用.它需要一个图像作为一个手柄,显示在屏幕的中心,我不希望这样.它还会滑动现有的屏幕内容,我正在寻找一种向上移动现有内容的方法.
更新1:
我尝试使用Sanket Kachhela建议的动画.但隐藏的布局从未显示过.这是代码.
布局(activity_main.xml):
<relativeLayout androID:ID="@+ID/main_screen" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" > <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/hello_world" androID:layout_alignParenttop="true"/> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/hello_world" androID:layout_centerInParent="true"/> <button androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="SlIDe up / down" androID:layout_alignParentBottom="true" androID:onClick="slIDeupdown"/></relativeLayout><relativeLayout androID:ID="@+ID/hIDden_panel" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_below="@ID/main_screen"> <button androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/app_name" /></relativeLayout>
活动(MainActivity.java):
package com.example.slIDeuplayout;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.Menu;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.vIEw.animation.Animation;import androID.vIEw.animation.AnimationUtils;public class MainActivity extends Activity {private VIEwGroup hIDdenPanel;private boolean isPanelShown;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); hIDdenPanel = (VIEwGroup)findVIEwByID(R.ID.hIDden_panel); hIDdenPanel.setVisibility(VIEw.INVISIBLE); isPanelShown = false;}@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true;}public voID slIDeupdown(final VIEw vIEw) { if(!isPanelShown) { // Show the panel Animation bottomUp = AnimationUtils.loadAnimation(this, R.anim.bottom_up); hIDdenPanel.startAnimation(bottomUp); hIDdenPanel.setVisibility(VIEw.VISIBLE); isPanelShown = true; } else { // HIDe the Panel Animation bottomDown = AnimationUtils.loadAnimation(this, R.anim.bottom_down); hIDdenPanel.startAnimation(bottomDown); hIDdenPanel.setVisibility(VIEw.INVISIBLE); isPanelShown = false; }}}
动画:
bottom_up.xml:
<?xml version="1.0" enCoding="utf-8"?> <set xmlns:androID="http://schemas.androID.com/apk/res/androID"> <translate androID:fromYDelta="75%p" androID:toYDelta="0%p" androID:fillAfter="true" androID:duration="500" /></set>
bottom_down.xml:
<?xml version="1.0" enCoding="utf-8"?> <set xmlns:androID="http://schemas.androID.com/apk/res/androID"><translate androID:fromYDelta="0%p" androID:toYDelta="100%p" androID:fillAfter="true" androID:interpolator="@androID:anim/linear_interpolator" androID:duration="500" /></set>
有什么想法可以做到这一点?
谢谢.
@R_419_6120@:
使用这些动画:
bottom_up.xml
<?xml version="1.0" enCoding="utf-8"?> <set xmlns:androID="http://schemas.androID.com/apk/res/androID"> <translate androID:fromYDelta="75%p" androID:toYDelta="0%p" androID:fillAfter="true" androID:duration="500"/></set>
bottom_down.xml
<?xml version="1.0" enCoding="utf-8"?> <set xmlns:androID="http://schemas.androID.com/apk/res/androID"><translate androID:fromYDelta="0%p" androID:toYDelta="100%p" androID:fillAfter="true" androID:interpolator="@androID:anim/linear_interpolator" androID:duration="500" /></set>
在您的活动中使用此代码隐藏/动画您的视图:
Animation bottomUp = AnimationUtils.loadAnimation(getContext(), R.anim.bottom_up);VIEwGroup hIDdenPanel = (VIEwGroup)findVIEwByID(R.ID.hIDden_panel);hIDdenPanel.startAnimation(bottomUp);hIDdenPanel.setVisibility(VIEw.VISIBLE);
总结 以上是内存溢出为你收集整理的android – 从屏幕底部向上滑动布局全部内容,希望文章能够帮你解决android – 从屏幕底部向上滑动布局所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)