小编fal*_*epl的帖子

改变一个人的颜色时膨胀按钮的奇怪行为

我正在尝试根据用户实时指定的输入为我的Android应用程序实现动态按钮膨胀.单击时,按钮将其颜色从蓝色更改为红色.

负责此的代码如下:

LayoutInflater layoutsInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.layout_for_buttons);

// Let's say that now we need only 3 buttons:
for (int i = 0; i < 3; i++) {
    RelativeLayout buttonLayout = (RelativeLayout) layoutsInflater
            .inflate(R.layout.button_layout, linearLayout, false);
    Button button = (Button) buttonLayout.getChildAt(0);
    button.setText("Button " + i);

    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View buttonView) {
            Button button = (Button) buttonView;
            GradientDrawable gradientDrawable = (GradientDrawable) button
                    .getBackground();
            gradientDrawable.setColor(Color.RED);
            gradientDrawable.invalidateSelf();
        }
    });

    linearLayout.addView(buttonLayout);
    linearLayout.invalidate();
}
Run Code Online (Sandbox Code Playgroud)

我追加按钮的布局很简单LinearLayout:

<LinearLayout …
Run Code Online (Sandbox Code Playgroud)

android layout-inflater android-view

2
推荐指数
1
解决办法
1462
查看次数

标签 统计

android ×1

android-view ×1

layout-inflater ×1