从RelativeLayout更改宽度不会影响子项

时间:2016-09-20 20:43:11

标签: android android-layout relativelayout

我的代码

<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孩子不受影响。

  

如果我的childRelativeLayout match_parentRelativeLayout并修改宽度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}}

0 个答案:

没有答案