Мне нужно уметь перетаскивать LinearLayout, содержащий TextView вверх и вниз.Перетащите LinearLayout вверх и вниз
LinearLayout является дочерним предприятием RelativeLayout.
Вот мой файл макета:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/drag"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#55000000"
>
<TextView
android:id="@+id/display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="30sp"
android:textColor="#fff"
android:textStyle="bold"
android:layout_gravity="center"
android:text="The Quick Brown Fox Jumped!!"
android:padding="15dp"
/>
</LinearLayout>
</RelativeLayout>
вот код я попробовал.
LinearLayout dragqueen;
dragqueen = (LinearLayout) findViewById(R.id.drag);
findViewById(R.id.drag).setOnTouchListener(new View.OnTouchListener()
{
int prevX,prevY;
@Override
public boolean onTouch(final View v,final MotionEvent event)
{
final FrameLayout.LayoutParams par=(FrameLayout.LayoutParams)v.getLayoutParams();
switch(event.getAction())
{
case MotionEvent.ACTION_MOVE:
{
par.topMargin+=(int)event.getRawY()-prevY;
prevY=(int)event.getRawY();
par.leftMargin+=(int)event.getRawX()-prevX;
prevX=(int)event.getRawX();
v.setLayoutParams(par);
return true;
}
case MotionEvent.ACTION_UP:
{
par.topMargin+=(int)event.getRawY()-prevY;
par.leftMargin+=(int)event.getRawX()-prevX;
v.setLayoutParams(par);
return true;
}
case MotionEvent.ACTION_DOWN:
{
prevX=(int)event.getRawX();
prevY=(int)event.getRawY();
par.bottomMargin=-2*v.getHeight();
par.rightMargin=-2*v.getWidth();
v.setLayoutParams(par);
return true;
}
}
return false;
}
});
Я понятия не имею, как достичь этого. Я скопировал код перетаскивания из учебника в Интернете .....