我试图通过改变布局的边距来实现 Facebook 像拖动一样,但是即使我在视图上调用无效,那些总是留下痕迹
Facebook for android / ios 做到了,我想知道他们是怎么做到的,我到处都看到只有图像被拖放
我试图实现这样的东西但是它在我的应用程序中留下了痕迹
package com.example.dragdemo;
@SuppressLint({ "NewApi", "ParserError", "ParserError" })
public class MainActivity extends Activity {
TextView x;
TouchExampleView tex;
Context ctx=MainActivity.this;
private float mPosX=0;
private float mPosY=0;
private float mLastTouchX;
private float mLastTouchY;
LinearLayout redLinear;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tex=new TouchExampleView(ctx);
redLinear=(LinearLayout)findViewById(R.id.newLinear);
redLinear.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
//Log.e("action is ", event.getAction()+"");
if(event.getAction()==MotionEvent.ACTION_MOVE)
{
//Toast.makeText(ctx, "comes in move", Toast.LENGTH_SHORT).show();
if(((mPosX-(int) event.getX())>2002)||((mPosX-(int) event.getX())<2002)){
mPosX=(int) event.getX();
RelativeLayout.LayoutParams rl=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
//rl.addRule(RelativeLayout., anchor)
rl.setMargins((int) event.getX(), 0, 0, 0);
redLinear.setLayoutParams(rl);
redLinear.invalidate();
}
}
return true;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}