2017-02-15 109 views
0

我该怎么做才能使Button的android:background颜色不禁用LinearLayout android:background颜色?这是动态创建按钮的时候。 这里是我的代码:Button BackgroundColor禁用LinearLayout BackgroundColor

for (int i = 0; i < myList.size(); i++) { 
     LinearLayout ll = (LinearLayout) findViewById(R.id.layout1); 

     ll.setBackgroundColor(Color.parseColor("#FFFFFF")); // WHITE 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     Button myButton = new Button(this); 
     myButton.setText(myList.get(i)); 

     myButton.setBackgroundColor(getResources().getColor(R.color.naranja)); // ORANGE 

     ll.addView(myButton, lp); 
     myButton.setId(i); 
     myButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { ……… 

回答

2

它不禁止的背景颜色,你在它上面绘制。如果您将LayoutParams更改为WRAP_CONTENT的宽度,您会注意到背景色仍然是白色。另外,如果你在按钮周围添加一些填充,你会注意到同样的事情。

+0

是的,它的工作原理是改变WRAP_CONTENT宽度,但这不是我喜欢的。我认为使用填充可以解决问题。但是,我在此指令中写入的任何参数都不会改变任何内容:按钮背景颜色禁用背景颜色: myButton.setPadding(0,10,0,0); //或其他任何其他 – FAR

+0

尝试添加边距而不是填充。 – Mikerizzo

+0

对不起,我发现了这个问题。我必须将Margin设置为LayoutParams,然后将setLayoutParams设置为我的视图,如下所示: params.setMargins(0,10,0,10); myButton.setLayoutParams(params); – FAR