我的问题很简单,

如何以编程方式设置按钮布局?

我在互联网上找到了这个,但它只是抛给我一个空指针异常:

 Button MyButton = new Button(this);

    LinearLayout.LayoutParams  lllp=(LinearLayout.LayoutParams)MyButton.getLayoutParams();
    lllp.gravity=Gravity.RIGHT;
    MyButton.setLayoutParams(lllp); 


    MyLinearLayout.addView(MyButton);

有解决办法吗?

推荐答案

Java语言

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.weight = 1.0f;
params.gravity = Gravity.TOP;

button.setLayoutParams(params);

Kotlin

val params = LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT
).apply {
    weight = 1.0f
    gravity = Gravity.TOP
}

了解重力值以及如何设置重力判断Gravity.

基本上,你应该根据家长的不同来 Select 这LayoutParams个.可以是RelativeLayout,LinearLayout等等.

Android相关问答推荐

使用Kotlin的SD卡

滚动屏幕时更改按钮外观

在命令行Android应用程序开发中苦苦挣扎

两首合成曲的喷气背包动画

在Jetpack Compose中从LazyColumn中删除项目时发生IndexOutOf边界异常

LaunchedEffect没有延迟时应用程序崩溃

学习Kotlin问题.无法理解Modifier参数

看不到选项菜单栏

Android 访问任意公共目录

请求访问小部件中的位置权限

具有数据库和升级潜力的移动应用程序开发(Android)供朋友使用

在 theme.xml 中使用 android:autoCompleteTextViewStyle

导航组件中预期的函数调用map(...)

我们也可以或应该对主要小部件使用预览 compose 功能吗?

没有互联网连接时,Firebase Storage putFile() 永远不会完成

从expose 的 dropdownMenu 可组合、jetpack 组合中 Select 选项时,不会触发文本字段的 onValueChange

如何在jetpack compose中创建自定义rememberState?

复用 RecyclerView 适配器,避免不必要的 API 调用

如何在 kotlin 的 android room DB 中设置一对多关系

Android Studio (Kotlin):无法启动活动