7

はい、これは SO に関する別の edittext grow の質問です。そして、はい、私はすでにこれらすべての edittext grow の質問を調べてきました。しかし、これは少し具体的です。

UI:

ここに画像の説明を入力

edittext とその下にボタンがあるシンプルな Android レイアウト。テキストが少ない場合、edittext ビューはまだ画面全体をカバーしており、下にボタン用のスペースを残しています。

ユーザーがテキストの入力を開始すると、edittext はテキストに合わせて垂直方向に拡大します。同時に、ボタンを下に押し続けて、編集テキストを大きくする必要があります。

ユーザーは画面を垂直方向にスクロールして全文を表示できます。

重要なテキストを入力した後の UI:

ここに画像の説明を入力

下の edittext とボタンを使用したレイアウトを次に示します。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/background"
    android:clipToPadding="false"
    android:fadingEdge="none"
    android:fillViewport="true"
    android:padding="13dp"
    android:scrollbarStyle="outsideOverlay" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1">

        <!-- some fixed width image  -->
        <ImageView
            android:id="@+id/someimage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:src="@drawable/page_white_text" />

        <EditText
            android:id="@+id/some"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/someimage"
            android:background="@null"
            android:gravity="top"
            android:minLines="10"
            android:minHeight="50dp"
            android:textColor="#222222"
            android:textSize="15dp"
            android:typeface="serif" >
            <requestFocus />
        </EditText>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:baselineAligned="true"
            android:layout_marginTop="5dp"
            android:padding="10dp"
            android:orientation="vertical" >

            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />

        </LinearLayout>
    </RelativeLayout>

</ScrollView>

これは多かれ少なかれ機能します。しかし、ボタンを下に押すのではなく、多くのテキストを入力すると。それは次のように後ろに行きます:

ここに画像の説明を入力

ここで何か助けていただければ幸いです。ありがとう :)

4

3 に答える 3

2

これが私の推奨事項です。ScrollView 内に、android:layout_below を使用してすべての要素を特定の順序で配置できる RelativeLayout を配置します。EditText の自動拡張には、このソリューションを使用してください。

例を見てみましょう:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:layout_gravity="center">
<RelativeLayout
    android:id="@+id/general2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_margin="20sp" >

    <TextView
        android:id="@+id/textFirstOpinion"
        android:layout_height="wrap_content"  
        android:layout_width="wrap_content"
        android:text="@string/titleFirstOpinion"
        android:textStyle="bold"
        android:textSize="23sp"
        android:textColor="#FFFFFF"
        android:layout_marginTop="10dp" />

    <EditText
        android:id="@+id/fieldFirstOpinion"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/textFirstOpinion" 
        android:minHeight="80sp"
        android:isScrollContainer="true"
        android:inputType="textMultiLine"
        android:textSize="20sp"
        android:gravity="top|left" />

    <Button
        android:id="@+id/button"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/fieldFirstOpinion"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="37sp"
        android:textSize="23sp"
        android:text="@string/textSendButton"
        android:gravity="center_horizontal"
        android:padding="10dp" />

</RelativeLayout>
</ScrollView>
于 2013-10-29T21:31:50.230 に答える
0

ボタンをページの下部に配置したいので、次の行を追加します

android:layout_below="@+id/some"
android:layout_centerHorizontal="true" 
android:layout_alignParentBottom="true" 

ここのLinearLayoutコードで

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/some"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" 
        android:layout_alignParentBottom="true"
        android:baselineAligned="true"
        android:layout_marginTop="5dp"
        android:padding="10dp"
        android:orientation="vertical" >

またlayout:height、EditText のパラメーターが [ wrap_content Try this and tell me if it works or not ] に設定されていることを確認してください。

于 2013-04-10T08:04:38.533 に答える