0

listOfTeamsJoined에는 분명히 두 팀이있는이 코드가 있습니다. 이 메소드를 호출동적으로 추가 할 때 하나의 버튼 만 나타나는 이유는 무엇입니까?

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

이있는 LinearLayout의 방향을 확인하십시오. –

+0

와우, 나는 어리 석다. 그것은 문제였다. – CookieMonster

답변

1

기본 방향은 가로입니다. 그리고 두 버튼의 너비에 너비는 MATCH_PARENT입니다. 즉, 첫 번째 버튼은 두 번째 버튼에 아무 것도 남기지 않고 전체 너비를 차지하므로 보이지 않게됩니다. 방향을 설정

당신은 당신의 LinearLayout이 같은 수직으로 할 경우에는 수동 : 당신은 수평을 유지하려면

teamButtonHolder.setOrientation(LinearLayout.VERTICAL); 

가, 그럼 그냥 WRAP_CONTENTMATCH_PARENT, 각각으로 너비와 높이를 반전. 그리고 그것도 효과가 있지만 그것들을 나란히 보여줄 것입니다. 당신이 폭 match_parent 아래처럼 버튼을 세트로

0

LinearLayout에는 어떤 방향이 있습니까? 수평으로 설정되어 있고 서로의 위에 놓기를 원할 때 "수직"이 올바른 선택이되어야합니다.

0

두 개의 새로운 버튼을 동적으로 추가합니다.하지만 다른 버튼과 겹치기 때문에 하나의 버튼이 표시됩니다. 그래서 서로에게 약간의 여백이나 패딩을 주면 그것을 볼 수 있습니다. 나는 그것이 당신에게 도움이되기를 바랍니다.

0

:

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

당신은 verticalLinearLayout의 방향을 설정해야합니다;

하지만 당신은 horizontally 다음과 같은 wrap_content으로 폭 PARAM을 설정 한 그 버튼을 설정하려면 :

newTeamButton.setLayoutParams(new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.WRAP_CONTENT, 
      LinearLayout.LayoutParams.WRAP_CONTENT 
    )); 
관련 문제