我有一个自定义组件,它扩展了 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"