0

listOfTeamsJoinedには2つのチームがあるという方法でこのコードを書いています。このメソッドを呼び出します2つを動的に追加すると、1つのボタンだけが表示されるのはなぜですか?

for (Team t : listOfTeamsJoined) 
{ 
       makeTeamButton(t.display_name); 
} 

は:

private void makeTeamButton(String teamName) 
{ 
         Button newTeamButton = new Button(this); 
       LinearLayout teamButtonHolder = (LinearLayout) findViewById(R.id.availableTeamsList); 

       newTeamButton.setLayoutParams(new LinearLayout.LayoutParams(
               LinearLayout.LayoutParams.MATCH_PARENT, 
               LinearLayout.LayoutParams.WRAP_CONTENT 
       )); 

       newTeamButton.setBackgroundColor(Color.parseColor("#00C272")); 
       newTeamButton.setTextColor(Color.parseColor("#FFFFFF ")); 
       newTeamButton.setText(teamName); 

       teamButtonHolder.addView(newTeamButton); 
   } 

問題は、それらの一方のみが表示されるということです。どちらか一方が他方に置き換えられているか、または互いの上に現れていると思われます。しかし、私はLinearLayoutを使用しているので、私は彼らがお互いの上に現われるべきではないと思っています。私が知る限り、addViewはビューを置き換えません。しかし、リストを並べ替えると、もう一方を表示させることができます。一緒には表示されません。

+1

しかし、あなたがhorizontallyとしてそれらのボタンを設定したい場合は、次にようにwrap_contentとして幅のparamを設定します。 –

+0

うわー、私は愚かな気がする、それは問題だった – CookieMonster

答えて

1

デフォルトの向きは水平です。そして、両方のボタンの幅には、MATCH_PARENTの幅を使用しています。これは、最初のボタンが2番目のボタンのために何も残さずに全体の幅をとることを意味します。あなたはLinearLayoutは、このような垂直になりたい場合は

は、手動で方向を設定します。

teamButtonHolder.setOrientation(LinearLayout.VERTICAL); 

をあなたが水平に保持したい場合は、単にそれぞれ、WRAP_CONTENTMATCH_PARENTする幅と高さを反転。そしてそれはうまくいくだろうが、それはそれらを並んで示すだろう。あなたは幅とmatch_parent以下のようなあなたのボタンを設定したよう

0

LinearLayoutの向きは?それは水平に設定されているように見え、それらを互いの上に置きたいので、ここでは "垂直"が正しい選択になるはずです。

0

2つの新しいボタンを動的に追加しますが、表示されている間は1つのボタンが表示されます。それで、お互いにいくらかのマージンやパディングを与えてください。そうすればそれが見えます。私はそれがあなたに役立つことを願っています。

0

newTeamButton.setLayoutParams(new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.MATCH_PARENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT 
    )); 

あなたはverticalとしてあなたLinearLayoutの向きを設定する必要があります。あなたのLinearLayoutの向きを確認してください

newTeamButton.setLayoutParams(new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.WRAP_CONTENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT 
    )); 
関連する問題