在绝对布局中使用布局功能更改按钮的位置

发布于 2024-11-06 05:02:46 字数 899 浏览 0 评论 0原文

我正在尝试使用绝对布局将按钮放置在不同的位置。 我正在使用以下 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="vertical"
  android:background="@drawable/bcgrd">
  <Button
    android:id="@+id/start_challenge"
    android:textStyle="bold"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text = "Start Challenge"
    android:textColor= "@color/light_gray"
    android:background="@color/background">
    </Button>  
</AbsoluteLayout>

java 文件包含以下代码:

    Button start_it = (Button)findViewById(R.id.start_challenge);
    start_it.layout(200, 200, 200, 200);

但没有任何反应(“200”仅用于示例。任何人都可以告诉我我做错了什么。

提前致谢。

I am trying to position a button in a different place using absolute layout.
I am using the following xml file:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="vertical"
  android:background="@drawable/bcgrd">
  <Button
    android:id="@+id/start_challenge"
    android:textStyle="bold"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text = "Start Challenge"
    android:textColor= "@color/light_gray"
    android:background="@color/background">
    </Button>  
</AbsoluteLayout>

the java file contains the following code:

    Button start_it = (Button)findViewById(R.id.start_challenge);
    start_it.layout(200, 200, 200, 200);

but nothing happen (the '200's are just for the example. can anyone please tell me what I am doing wrong.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无人问我粥可暖 2024-11-13 05:02:46

你做错的是使用AbsoluteLayout。 :) 说真的,你真的不应该使用它;尝试使用 FrameLayout 代替。

但是,要回答您的问题,您不应该在其上调用布局,而是这样做:

AbsoluteLayout.LayoutParams params = (AbsoluteLayout.LayoutParams)start_it.getLayoutParams();
params.x = 200;
params.y = 200;
start_it.setLayoutParams(params);

或者使用更少的代码,您可以这样做:

start_it.setLayoutParams(new AbsoluteLayout.LayoutParams(
    start_it.getWidth(), start_it.getHeight(), 200, 200));

What you're doing wrong is using AbsoluteLayout. :) Seriously, you really shouldn't use it; try using a FrameLayout instead.

However, to answer your question, you shouldn't call layout on it, do this instead:

AbsoluteLayout.LayoutParams params = (AbsoluteLayout.LayoutParams)start_it.getLayoutParams();
params.x = 200;
params.y = 200;
start_it.setLayoutParams(params);

Or with less code, you could do this instead:

start_it.setLayoutParams(new AbsoluteLayout.LayoutParams(
    start_it.getWidth(), start_it.getHeight(), 200, 200));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文