Android:在Java中以MATCH_PARENT的运行时创建的按钮

Red*_*ile 4 android android-layout

嘿大家,

import android.widget.Button;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webpage);

        but_action = new Button(getApplicationContext());
        but_action.setVisibility(Button.INVISIBLE);
        toolbar.addView(but_action);
Run Code Online (Sandbox Code Playgroud)

关于上面的代码,这会创建一个隐藏按钮,我根据某些条件使其可见.这有效,按钮上的逻辑也是如此.

问题是按钮的高度是静态的,这是不可能的.我需要此按钮来简单地匹配其父项高度(因为您可以在工具栏视图中看到它,这只是一个水平线性布局),因为工具栏的高度在平板电脑大小的视图上是不同的,而不是电话大小的视图.

我听说我需要使用LayoutParams,但我会完全诚实:没有我尝试验证,什么时候验证:什么都不做.并且使用setHeight似乎只接受数值.

我有点陷入困境,我不知道还有什么可以尝试的.

(也有类似浮动的东西:正确;用于实时布局?)

Foa*_*Guy 13

这应该为你做:

LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
but_action.setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)

请注意,当您导入LayoutParams时,您想要选择与您的父项匹配的那个,因此在这种情况下,您将导入LinearLayout.LayoutParams

  • 这确实很有效,但在实施之后非常有趣,我被要求将按钮放在XML中,所以设计师可以找到.*感叹*谢谢! (2认同)