2014-03-01 2 views
0

나는 진부하지만 짜증나는 문제가 있습니다. 나는 TableRow입니다. The Row에는 9 개의 버튼이 있지만 그 중 5 개의 버튼 만 보입니다. 내가 코드를 단축하는 경우, 그것은 다음과 같이 표시됩니다TableRow의 버튼 크기 설정

XML :

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="fill_vertical"> 

<TableRow 
android:id="@+id/row"/> 

</TableLayout> 

JAVA : 내가 인터넷에서 발견 어떤 내가 이미 시도했습니다

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_pokusy); 
    TableRow row = (TableRow)findViewById(R.id.row); 
    for(int i = 0; i < 9; i++){ 
     Button b = new Button(this); 
     row.addView(b); 
    } 
}} 

(같은 예를 들면. setWidth, setLayoutParams, android:layout_width="...") 9 개의 버튼 중 5 개만 화면에 표시됩니다. 누군가 나를 도와 줄 수 있습니까?

+0

전체 XML을 게시 할 수 있습니까? – AndyFaizan

+0

알다시피 ... 나는 긴 XML과 긴 자바 코드를 가지고있다. 사실 나는 9 개의 TableRows에 각각 9 개의 버튼이 있습니다. 하지만 이미 작성한 것처럼 5 개 밖에 볼 수 없었습니다 (각 행). 그래서 나 자신에게 말했습니다. 실험을 시도하고 xml 코드와 정확히 같은 모양의 새로운 '실험'클래스를 만들었습니다. 위의 코드. –

+0

방금 ​​코드를 테스트 한 결과 첫 번째 행에 9 개의 버튼이 그려진 것 같습니다. 그게 정확히 당신이 코드를 통해 무엇을 말하고 있는지를 말하려합니다. – AndyFaizan

답변

0

XML을 약간 수정하여 제대로 작동하도록했습니다. shrinkColumns 특성은 열을 원하는 TableLayout 매개 변수에 맞 춥니 다. '*'는 그것을 모든 컬럼에 적용합니다.

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="fill_vertical" 
    android:shrinkColumns="*" > <!-- this makes the difference --> 

    <TableRow 
     android:id="@+id/row" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</TableLayout> 
+0

아직도 작동하지 않습니다. 나는 정말로 이유를 모른다. 스틸 5가 보이고 6 번째 부분 만 보입니다. 내가 볼 수있는 인쇄 화면을 보내고 싶지만 어떻게해야할지 모르겠다. –

+0

TableRow 레이아웃 매개 변수를 XML에 추가 했습니까? – AndyFaizan

+0

예,하지만 작동하지 않습니다 –