我的代码
<RelativeLayout
android:id="@+id/leftSelectorView"
android:layout_width="50dp"
android:layout_height="match_parent">
<View
android:id="@+id/grayBgLeft"
android:focusableInTouchMode="false"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#bf484349" />
<RelativeLayout
android:id="@+id/leftBorderView"
android:layout_marginLeft="20dp"
android:layout_width="30dp"
android:layout_height="match_parent">
<ImageView
android:id="@+id/boxLeft"
android:focusableInTouchMode="false"
android:layout_marginLeft="15dp"
android:layout_width="15dp"
android:layout_height="match_parent"
android:src="@mipmap/box_selector"
android:scaleType="fitXY" />
</RelativeLayout>
</RelativeLayout>
我移动leftSelectorView
宽度 programmatically
leftSelectorView.getLayoutParams().width = 150;
且View
孩子不受影响。
如果我的
child
内RelativeLayout
match_parent
宽RelativeLayout
并修改宽度child
,如何更新requestLayout
的宽度?< / p>
使用leftBorderView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
detector.onTouchEvent(event);
if (event.getAction() == MotionEvent.ACTION_MOVE) {
int xMove = (int) event.getX();
Log.e("onTouch", "xMove===> " + xMove);
int widthMove = xMove < 50 ? 50 : 50 + xMove;
RelativeLayout.LayoutParams parms = new RelativeLayout.LayoutParams(widthMove, ViewGroup.LayoutParams.MATCH_PARENT);
leftSelectorView.setLayoutParams(parms);
grayBgLeft.requestLayout();
}
return true;
}
});
现在更新al childrens。 (感谢 @FunkTheMonk )
现在出现了另一个问题。我试图移动的RelativeLayout,需要一些跳跃,好像有时候采取新的位置,然后是旧的位置
我的代码:
{{1}}