中保存并拖动(重新定位)布局及其关联的布局我正在制作一个Android应用程序。我有一个场景。首先看下面的屏幕截图,所以任何人来这里回答有一些清晰的图片,我想要的。如何在Andr oid
场景:活动具有低于导航栏地图,RelativeLayout的(红色背景)的中心,下面红色的RelativeLayout一个ListView
我想要什么:我想拖或再位置(无论他人可能使用什么术语)通过握住我的手指并沿着下面的列表视图在屏幕上上下移动时,红色RelativeLayout也应随此布局移动
代码我想:
XML布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/fifty_five_dp"
android:id="@+id/topBar"
android:background="@color/bg_color" >
<Button
android:id="@+id/button_menu"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="4dp"
android:background="@drawable/list_btn"
android:onClick="toggleMenu" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Watchover"
android:textColor="@android:color/white"
android:textSize="@dimen/eighteen_sp"
android:textStyle="bold" />
</RelativeLayout>
<!-- This is where fragment will show up -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/topBar"
android:id="@+id/root"
android:background="@android:color/white" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/greenBarImage" />
<RelativeLayout
android:id="@+id/redLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/forty_dp"
android:layout_centerVertical="true"
android:background="@color/btn_color" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Fences Info"
android:textColor="@android:color/white"
android:textSize="@dimen/sixteen_sp" />
<Button
android:id="@+id/btn_drag"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="4dp"
android:background="@drawable/list_btn"
android:onClick="toggleMenu"
android:visibility="gone" />
</RelativeLayout>
<ListView
android:id="@+id/list_devices"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/greenBarImage"
android:padding="@dimen/five_dp"
android:scrollbars="none" />
</RelativeLayout>
</FrameLayout>
</RelativeLayout>
Java代码:
public class MyActivity extends FragmentActivity implements OnTouchListener
{
private int _xDelta;
private int _yDelta;
RelativeLayout redLayout;
FrameLayout rootLayout;
ListView devicesList;
@Override
protected void onCreate(Bundle arg0)
{
super.onCreate(arg0);
setContentView(R.layout.main_screen);
devicesList = (ListView) findViewById(R.id.list_devices);
rootLayout = (FrameLayout) findViewById(R.id.root);
redLayout = (RelativeLayout) findViewById(R.id.redLayout);
redLayout.setOnTouchListener(this);
}
@Override
public boolean onTouch(View view, MotionEvent event)
{
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
_xDelta = X - lParams.leftMargin;
_yDelta = Y - lParams.topMargin;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = Y - _yDelta;
layoutParams.rightMargin = -250;
layoutParams.bottomMargin = -250;
view.setLayoutParams(layoutParams);
break;
}
rootLayout.invalidate();
return true;
}
}
来源为获得上面的代码帮助here
我试过的代码没有得到期望的结果。当我上下拖动红色的RelativeLayout时,该布局上的列表视图叠加层并未按我的需要进行调整。任何类型的帮助将不胜感激。
如何在eclipse中使用这些库?因为我在eclipse中开发这个应用程序 –
@ZubairAhmadKhan检查这个链接:http://stackoverflow.com/questions/26878803/how-to-add-android-support-v7-libraries-in-eclipse和这个:https:/ /developer.android.com/tools/support-library/setup.html#libs-with-res(PS Android Studio 2.0比*更好的体验,比Eclipse更好,试试吧) –
我知道Android Studio 。目前我没有太多时间从eclipse转移到Studio。我想知道是否有可能在eclipse中使用这些库?如果是好心地建议我一种方式谢谢 –