Я создал фрагмент, в котором кнопку можно перетаскивать с помощью onTouchListener () и setTranslationX (), но кнопка перемещается между двумя позициями при перетаскивании, после исследования с использованием журнала я обнаружил, что setTranslationX () не работает должным образом и не двигая кнопку, как требуется, вот мой код, фрагмент. java
bfli.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
vc=ViewConfiguration.get(v.getContext());
switch(event.getActionMasked())
{
case MotionEvent.ACTION_DOWN:
if(vt==null)
{
vt=VelocityTracker.obtain();
}
else
{
vt.clear();
}
vt.addMovement(event);
xt=event.getX();
break;
case MotionEvent.ACTION_MOVE:
xn=event.getX();
dx=xn-xt;
tc.setText("v"+dx);
Log.d("Tag","Rawx"+event.getRawX()+" xt"+xt+" xn"+xn+" xct"+bfli.getX()+" dx"+dx);
bfli.setTranslationX(dx);
vt.addMovement(event);
vt.computeCurrentVelocity(1000);
velfi= vt.getXVelocity();
break;
case MotionEvent.ACTION_UP:
Toast.makeText(getActivity(), "Up",Toast.LENGTH_LONG).show();
fc.setStartVelocity(velfi/10).setFriction((float)0.6);
fc.start();
break;
}
return false;
}
});
и фрагмент. 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">
<Button
android:id="@+id/buttonmee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IwiilMove"
android:layout_marginTop="490dp"
android:layout_centerHorizontal="true"/>
<Button
android:id="@+id/buttonspr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IAmSpring"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
<Button
android:id="@+id/buttonfli"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IAmFling"
android:layout_marginTop="190dp"
android:layout_centerHorizontal="true"/>
<TextView
android:id="@+id/topfli"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="v0"
android:layout_marginTop="260dp"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
Кнопка с именем bfli - это верхняя кнопка с текстом IAmfling (средняя кнопка в коде xml), а вот log ,
: Show toast from OpPackageName:com.example.tutorialspoint7.neeee, PackageName:com.example.tutorialspoint7.neeee
2020-05-04 16:54:48.336 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx756.4503 xt187.09515 xn180.54547 xct575.90485 dx-6.5496826
2020-05-04 16:54:48.350 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx749.94934 xt187.09515 xn339.49902 xct410.45032 dx152.40387
2020-05-04 16:54:48.368 22605-22605/com.example.tutorialspoint7.neeee W/Choreographer: OPTS_INPUT: First frame was drawed before optimized, so skip!
2020-05-04 16:54:48.372 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx744.07996 xt187.09515 xn174.67609 xct569.4039 dx-12.419067
2020-05-04 16:54:48.384 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx738.62317 xt187.09515 xn334.04224 xct404.58093 dx146.94708
2020-05-04 16:54:48.397 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx734.6574 xt187.09515 xn170.71033 xct563.9471 dx-16.384827
2020-05-04 16:54:48.414 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx731.3139 xt187.09515 xn330.69873 xct400.61517 dx143.60358
2020-05-04 16:54:48.432 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx728.3482 xt187.09515 xn167.74463 xct560.6036 dx-19.350525
2020-05-04 16:54:48.449 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx725.3564 xt187.09515 xn327.7069 xct397.64948 dx140.61176
2020-05-04 16:54:48.465 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx721.6006 xt187.09515 xn163.98883 xct557.61176 dx-23.106323
2020-05-04 16:54:48.481 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx717.5719 xt187.09515 xn323.67822 xct393.89368 dx136.58307
2020-05-04 16:54:48.499 22605-22605/com.example.tutorialspoint7.neeee D/Tag: Rawx712.62976 xt187.09515 xn159.04669 xct553.58307 dx-28.048462