2012-02-01 2 views
1

I는 UI 계층UI 컨트롤 '폭

스크롤보기 다음있다 ->이 TableLayout을 -

문제점 행 내부 > 행은 [텍스트 뷰 + 글고 각 행을 갖고, 각각의 뷰는 안 부모 (TableRow)의 너비의 50 %를 초과합니다. 입력하기 위해 EditText가 생성되면 최대 문자 N의 사용자 이름을 말하십시오. 이상적으로 EditText의 너비는 정확하게 N 자 길이 여야하지만 50 % 제한을 초과해서는 안됩니다.

많은 순열과 조합을 시도해 본 결과 지금까지 제대로 이해하지 못했습니다.

프로젝트 요구 사항에 따라 프로그래밍 방식으로 처리해야합니다.

감사합니다.

+0

보여 코드. 그래서 어떤 사람도 당신을 도와 줄 수 있습니다 –

+0

당신이 android를 사용할 수있는 캐릭터를 제한하고 싶다면 : maxLength = "10" –

+0

@AndroidTechMe 제 코드가 'ask'가 제안한 것입니다. – iuq

답변

0

내 레이아웃이 효과적이기 위해서는 TableLayout을 스크랩해야했습니다. TableRows의 레이아웃 매개 변수가 비효율적 인 것처럼 보입니다. LinearLayout은보다 유연 해 보입니다.

이제 레이아웃 계층 구조가 다음과 같이 작동합니다.

스크롤보기 -> LinearLayout을 대신 TableLayout을의 - 여기> [대신 TableRows의있는 LinearLayout에 encapuslated 개별 필드]

0

은이 같은 레이아웃 무게를 사용해보십시오 :

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

    <TextView 
     android:id="@+id/textview1" 
     android:layout_width="0px" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"> 
    </TextView> 

    <EditText 
     android:layout_width="0px" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 
    </EditText> 

</TableRow> 

프로그래밍을하려면,이 같은 동일하게 수행의 LayoutParams를 사용해보십시오 :

내가 생각 answers.i의를 물어 당신의 코멘트를보고
TableLayout table = (TableLayout) findViewById(R.id.TableLayout1); 

TableRow tr = new TableRow(this); 
TableLayout.LayoutParams trparams = new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT); 
tr.setLayoutParams(trparams); 

textview1 = new TextView(this); 
edittext1 = new EditText(this); 

TableRow.LayoutParams fieldparams = new TableRow.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f); 
tr.addView(textview1, fieldparams); 
tr.addView(edittext1, fieldparams); 

table.addView(tr); 
+0

감사합니다. 이것을 시도했지만 Views의 너비를 정확하게 각각 50 %로 고정합니다. 그러나 EditText에 5 개의 문자 만 입력하면 5 자 이상이어야합니다. 50 % 공간은이 경우 너무 길어서 좋지 않습니다. – iuq

0

edittext 또는 textview의 너비를 content로 감싸고 해당 컨트롤의 최대 너비 속성을 screen의 50 %로 설정합니다. 너비가 부모 너비의 50 %를 초과하지 않습니다.

+0

이 작동하지 않습니다. 너 시도 했니? setXXXWidth 메서드는 비효율적 인 것처럼 보입니다. – iuq