2012-07-22 17 views
9

XMLコードを作成しました。ここでEditTextを親の幅に合わせて展開します。あまりにも多くの時間を費やした後、私はEditTextを拡張する方法を見つけることができません。私はここで間違っなぜEditTextがfill_parentに展開されていないのですか

<?xml version="1.0" encoding="UTF-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TableLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <TableRow 
     android:layout_marginLeft="10dp" 
     android:layout_marginBottom="15dip">   
     <TextView 
      android:text="Comment" 
      android:layout_width="match_parent" 
      android:textStyle="bold" 
      android:padding="3dip" />  
    </TableRow> 

    <TableRow 
     android:layout_marginLeft="10dp" 
     android:layout_marginBottom="15dip">   
     <EditText 
      android:id="@+id/EditText02" 
      android:layout_height="wrap_content" 
      android:lines="5" 
      android:gravity="top|left" 
      android:inputType="textMultiLine" 
      android:scrollHorizontally="false" 
      android:minWidth="10.0dip" 
      android:maxWidth="5.0dip"/> 
    </TableRow> 

    <TableRow 
     android:layout_marginLeft="10dp" 
     android:layout_marginBottom="15dip" 
     android:gravity="center">   
     <Button 
      android:id="@+id/cancel" 
      android:text="Next" />  
    </TableRow> 
</TableLayout> 
</LinearLayout> 

を作ったもの:

は、ここに私のXMLです。私を助けてください。

答えて

2

すべての行にTextViewの余分な列を追加します。

このコードは役に立ちます。

<?xml version="1.0" encoding="UTF-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<TableLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:stretchColumns="1" 
    android:orientation="vertical"> 

    <TableRow 
     android:layout_width="fill_parent" 
     android:layout_marginLeft="10dp" 
     android:layout_marginBottom="15dip"> 

     <TextView android:text="" />  

     <TextView 
      android:text="Comment" 
      android:layout_width="match_parent" 
      android:layout_marginRight="10dp" 
      android:textStyle="bold" 
      android:padding="3dip" />  
    </TableRow> 

    <TableRow 
     android:layout_marginLeft="10dp" 
     android:layout_marginBottom="15dip"> 

     <TextView android:text="" />   

     <EditText 
      android:id="@+id/EditText02" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="20dp" 
      android:lines="5" 
      android:gravity="top|left" 
      android:inputType="textMultiLine" 
      android:scrollHorizontally="false" /> 
    </TableRow> 

    <TableRow 
     android:layout_marginLeft="10dp" 
     android:layout_marginBottom="15dip" 
     android:gravity="center"> 

     <TextView android:text="" />   

     <Button 
      android:id="@+id/cancel" 
      android:layout_marginRight="10dp" 
      android:text="Next" />  
    </TableRow> 
</TableLayout> 
</LinearLayout> 
1

重大な場合はわかりません。

あなたはあなたののEditTextの最小幅(minWidth)を持っているが、それは最大幅(maxWidth)だ、とあなたはそれを(あなたがmatch_parentに設定する必要があります)layout_width属性を与えられていないよりも大きくします。

+0

あなたのTableLayoutにandroid:stretchColumns="0"を追加してください、私はそれをmatch_parentするlayout_widthを与えているが、何も変更されません。 – user1462473

+0

また、 'maxWidth'と' minWidth'属性も削除してください。 – kcoppock

0

私は、これはあなたが必要とするもの全てであれば、あなたはTableLayoutを使用して回避しandroid:orientation="vertical"でのみシングルLinearLayoutを使用することができますが、第二にLinearLayout

からandroid:orientation属性が欠けていると思いますし、他のすべての3 View秒でそれ。

+0

'android:orientation'は必須ではありません。デフォルトでは、http://developer.android.com/reference/android/widget/LinearLayout.htmlに従って「水平」に設定されます。 –

8

種類は古いですが、追加するものがあると思います。

ドキュメント(以下に引用)によると、layout_widthとlayout_heightはすべてのTableRowの子供にあらかじめ決められていると思います。

代わりに、layout_weightを使用してTableRow内の要素の幅/高さを判断できます。つまり、アンドロイド:emsプロパティを設定し、そのフォントサイズに基づいて幅を設定しない限り、例えば

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

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:hint="@string/place" 
     android:inputType="textPersonName" > 

     <requestFocus /> 
    </EditText> 

</TableRow> 

これは私のためのTableRow内でフルスクリーンワイドのEditTextを生産。

は、ここでのTableRowのdocumentationからの引用です:

のTableRowの子どもたちがXMLファイルの属性layout_height layout_widthと を指定する必要はありません。 TableRowは、これらの値がそれぞれMATCH_PARENTおよびWRAP_CONTENTであるように常に を強制します。

問題は、わかっているように、実際には起こりません。私はlayout_widthも "WRAP_CONTENT"を受け取ると思う。

0

edittextviewでlayout_weight="1"を使用できます。

0

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/back" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" -->> change to 0dip android:paddingRight="@dimen/activity_horizontal_margin" -->> change to 0dip android:paddingTop="@dimen/activity_vertical_margin" tools:context=".StartUp" >

関連する問題