簡體   English   中英

relativelayout運行時中的位置視圖

[英]position view in relativelayout runtime

我想將視圖添加到relativelayout。 該視圖必須添加到指定位置。

我有這個:

    int x = ...;
    int y = ...;
    button.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            int x = (int) event.getRawX();
            int y = (int) event.getRawY();
            v.layout(x, y, x + v.getWidth(), y + v.getHeight());
            return true;
        }
    });
    relativelayout.addView(button);
    button.layout(x, y, x + button.getWidth(), y + button.getHeight());

ontouchlistener效果很好。 但是起始位置始終為0、0 ... x和y是什么都無關緊要。

任何人的想法?

我有一個解決方法。

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lp.leftMargin = x;
lp.topMargin = y;
relativelayout.addView(tmpTextButtonView, lp);

使用margin定位浮動視圖不是很好。 但是它對我有用。

您可能需要嘗試設置按鈕的位置,然后再將其添加到父視圖。 因此,只需交換這兩行:

relativelayout.addView(button);
button.layout(x, y, x + button.getWidth(), y + button.getHeight());

是這樣的:

button.layout(x, y, x + button.getWidth(), y + button.getHeight());
relativelayout.addView(button);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM