设置视图的 X 和 Y onclick 不改变位置

Posted

技术标签:

【中文标题】设置视图的 X 和 Y onclick 不改变位置【英文标题】:Set X and Y of a view onclick not changing position 【发布时间】:2016-02-13 13:17:18 【问题描述】:

我正在尝试以编程方式更改 TextView 的位置。我在代码中创建TextView 并显示它。一切正常,但TextView 始终保持在屏幕的左上角,不管它更改为setXsetY

这是我的代码。

 button.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 

            textView = new TextView(MainActivity.this);
            textView.setText("Test");
            textView.setPadding(10, 10, 10, 10);

            RelativeLayout Screen = (RelativeLayout) findViewById(R.id.screenRelativeLayout);

            Typeface face=Typeface.createFromAsset(getAssets(),"fonts/shablagooital.ttf");
            textView.setTypeface(face);

            Display display = getWindowManager().getDefaultDisplay();
            Point size = new Point();
            display.getSize(size);
            int screenwidth = size.x;
            int screenheight = size.y;
            Random randdisp = new Random();

            int randscreenwidth = randdisp.nextInt(screenwidth) + 1;
            int randscreenheight = randdisp.nextInt(screenheight) + 1;

            textView.setX(200);
            textView.setY(200);

            Screen.addView(textView);

感谢您的帮助。

尼古拉斯

【问题讨论】:

你没有给出相同的变量引用,你必须在点击时给出它的引用 @keyurLahani 我不明白你的意思?我放在那里测试的 setX 和 setY 值就是你的意思? 【参考方案1】:

你可以使用LayoutParams:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
params.setMargins(200, 200, 0, 0);
Screen.addView(textView, params);

【讨论】:

【参考方案2】:

可能在将 TextView 添加到屏幕后设置 X 和 Y。

【讨论】:

以上是关于设置视图的 X 和 Y onclick 不改变位置的主要内容,如果未能解决你的问题,请参考以下文章

如何在屏幕上的特定位置设置视图?

视图不粘在顶部(不改变位置)

改变 UIView 位置的简单方法?

becomeFirstResponder 重置其他视图的 x/y 位置

在用Matlab画图时,能不能改变原点的位置

UI零碎知识