我有一个自定义组件,它扩展了LinearLayout并实现了onTouchListener
当onTouch触发并改变自定义视图的leftMargin属性时,此组件对图形进行一些更改
当我将组件添加到项目而不覆盖onTouch方法时,一切似乎都有效,但是当我覆盖onTouch方法时,左边距状态变为相对于屏幕的宽度。
为什么会这样?
自定义组件:
@Override
public void setOnTouchListener(OnTouchListener l) {
super.setOnTouchListener(l);
navigationButton.setonTouchListener(l)
}
@Override
public boolean onTouch(View view, MotionEvent event) {
.....
return true;
}
的活动:
CustomComponent customComponent = (CustomComponent)findViewById(R.id.custom_component);
customComponent.setOnTouchListener(new OnTouchListener(..... // This part leads to the change in leftMargin of the customComponent
修改 现在编辑了一点代码: 之前:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="64.67dp"
android:gravity="right|center_vertical" >
<com.est.bla.bla.customcomponents.SomeCustomComponent
android:id="@+id/someid"
android:gravity="center"
android:layout_marginRight="6dip"
android:layout_width="100dip"
android:layout_height="50dip" >
</com.est.bla.bla.customcomponents.SomeCustomComponent>
现在:(现在它正常工作)
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="64.67dp"
android:layout_alignParentRight="true"
android:gravity="center_vertical" >
<com.est.bla.bla.customcomponents.SomeCustomComponent
android:id="@+id/someid"
android:gravity="center"
android:layout_marginRight="6dip"
android:layout_width="100dip"
android:layout_height="50dip" >
</com.est.bla.bla.customcomponents.SomeCustomComponent>
所以我想在这种特殊情况下,layout_alignParentRight="true"
优于gravity="right"