1

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

4

0 回答 0