私は本当にしようとしましたが、Androidがlayout_weight
設定をどのように解釈するか理解できません...
私が達成しようとしているのは
- 上部に固定高さのヘッダー
- EditText と Button を含む下部の入力領域
- 残りのスペースをすべて使用する中間のコンテンツ部分
入力するときに、EditText を特定の高さに拡大し、入力されたテキストが使用可能な高さを超えた場合にスクロールを開始したいと思います。これを行うには、周囲LinearLayout
が EditText と一緒に成長する必要があります。
内部LinearLayout
に特定の高さを定義すると、それは大きくなりません。そうしないと、何を使用しようとしても、内部レイアウトが ScrollView の代わりにすべてのスペースを占有しlayout_weight
ます。:(
私の現在のXMLは次のようになります。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="I'm a header" />
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="bottom">
<LinearLayout
android:id="@+id/itemContainer"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</ScrollView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
android:padding="2dp"
android:gravity="bottom"
android:isScrollContainer="true"
android:background="@drawable/steel" >
<EditText
android:id="@+id/edittext01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:scrollbars="vertical"
android:fadingEdge="vertical"
android:fadingEdgeLength="60dp"
android:maxHeight="40dp"
android:textSize="15sp" />
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:layout_gravity="right"
android:text="Send"
android:textStyle="bold"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
どんなヒントでも大歓迎です!