Android 更改活动的宽度';基于MotionEvent的布局
我试图做的是覆盖dispatchTouchEvent(MotionEvent ev)方法,获取动作,计算移动,然后根据移动显示底部 以下是我的基本想法:Android 更改活动的宽度';基于MotionEvent的布局,android,android-layout,Android,Android Layout,我试图做的是覆盖dispatchTouchEvent(MotionEvent ev)方法,获取动作,计算移动,然后根据移动显示底部 以下是我的基本想法: @Override public boolean dispatchTouchEvent(MotionEvent ev) { int action = ev.getActionMasked(); switch (action) { case MotionEvent.ACTION_UP: br
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
int action = ev.getActionMasked();
switch (action) {
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_DOWN:
mDownX = ev.getRawX();
mDownY = ev.getRawY();
break;
case MotionEvent.ACTION_MOVE:
float deltaY = ev.getRawY() - mDownY;
Log.d(TAG, "delta y: " + deltaY);
if (deltaY < -50f) {
// show bottom part
}
if (deltaY > 50f) {
// close bottom part
}
break;
default:
break;
}
return false;
}
@覆盖
公共布尔dispatchTouchEvent(MotionEvent ev){
int action=ev.getActionMasked();
开关(动作){
case MotionEvent.ACTION\u UP:
打破
case MotionEvent.ACTION\u DOWN:
mDownX=ev.getRawX();
mDownY=ev.getRawY();
打破
case MotionEvent.ACTION\u移动:
float deltaY=ev.getRawY()-mDownY;
Log.d(标签“delta y:+deltaY”);
如果(德尔泰<-50f){
//显示底部
}
如果(三角洲>50f){
//封闭底部
}
打破
违约:
打破
}
返回false;
}
我的问题是:我应该使用什么来更改此活动的宽度并显示底部
提前感谢:-)好的,所以我喜欢布局黑客 对于本例,我将有一个顶部部分和一个底部部分,这是您希望在运动事件中公开的部分 在您的滑动功能中,将底部块的可见性设置为visible,
animateLayoutChanges
将使其看起来像是在向上滑动
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0"
android:layout_weight="1"
android:orientation="vertical"
android:animateLayoutChanges="true" >
<LinearLayout
android:id="@+id/topBlock"
android:layout_width="match_parent"
android:layout_height="0"
android:layout_weight="1" >
</LinearLayout>
<LinearLayout
android:id="@+id/bottomBlock"
android:layout_width="match_parent"
android:layout_height="100dp"
android:visibility="gone" >
</LinearLayout>
</LinearLayout
到底是什么???顺便说一下,您不能更改活动的宽度。@Merlevede活动的底部。假设您先设置了一些视图,然后您想根据运动隐藏/显示它,即使我不明白。要显示/隐藏视图,只需更改其可见性即可。@Merlevede right。但是如果需要一些动画呢?根据动作,慢慢地显示/关闭视图?好吧,如果你在问题中提到“动画”这个词。。。。