-1

我的第一个问题是点击布局。我解决了。

现在我的问题是如何在所需位置设置按钮的位置?

我的应用程序的最低 api 级别为 8(我无法设置getX()getLeft()

测试 XML 代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" >
<Button android:id="@+id/buttonx" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="X" />
</LinearLayout>

活动代码:

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class Test extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.test);

        Button xclose = (Button) findViewById(R.id.buttonx);
        xclose.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                finish();
            }
        });
    }
}

有什么方法可以动态或以编程方式更改按钮的位置?

4

6 回答 6

1

如果您需要在线性布局中对齐视图,请阅读重力和 layout_gravity 属性。

您有另一个布局,例如相对布局。它将为您提供视图对齐的更多属性。例如:layout_alignLeft、layout_alignParentLeft 等...

研究它并随心所欲地使用它......谢谢......

于 2013-06-19T06:21:25.827 回答
0
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/blur2"
    android:orientation="horizontal"
    tools:context=".MainActivity" >
<Button android:id="@+id/buttonx" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="X" />

</RelativeLayout>

确保它是相对的,而不是线性布局,因为相对它可以让您轻松移动按钮。

于 2013-12-18T07:54:11.723 回答
0

例如,您可以在代码中使用填充或边距

 xclose.setPadding(left, top, right, bottom);

在onclick的时候你试试这个

于 2013-06-19T06:21:06.197 回答
0

您始终可以使用Jake Wharton 的NineOldAndroids来使用 setX() 和 setY()(以及许多其他属性)。该库将 Honeycomb-Animation 框架移植回 api 级别 1!

如果这不起作用,您可以创建自己的 ViewGroup 并自己测量/布局孩子。更多信息在这里

编辑:此外, View.getLeft()/getTop()/... 自 api 级别 1 起可用。请参见此处

希望这可以帮助!

于 2013-06-19T06:27:35.257 回答
0

我不知道你想在哪里找到你的按钮,但你应该查看 FrameLayout(它可以让你将按钮放在布局中的任何位置)。

于 2013-06-19T06:34:13.487 回答
0

使用 Android,您通常有三个布局选项,详见Layouts | Android 开发者笔记。线性布局为您提供了声明元素并将它们水平或垂直链接的选项。我相信你需要的相对布局允许你自由定义一个元素相对于另一个元素的位置,而Web 视图通常用于显示与 Web 相关的内容。

正如我所说,我相信相对布局是您正在寻找的。看看这个例子,它巧妙地概述了如何使用不同的对齐选项来放置元素。你不会有两大类。第一个允许您将元素与父元素对齐,如果您想向左、向右、顶部、底部或中心移动元素,这很方便。第二个允许您通过指定您的元素是,例如,android:layout_toLeftOf或来定义关于同一级别上的元素的对齐方式android:layout_below。您可以结合所有这些来获得所需的结果。

我很清楚有很多选项可以实现结果,但我发现这非常简单,通常足以实现视觉上有吸引力的布局。

于 2013-06-19T06:49:10.473 回答