ユーザーの入力を反映して大きくなる可能性のある動的に拡張するレイアウトを作成したいと思います。まず、両方向にスクロールできるアクティビティレイアウトを作成しました(これは私の発明ではありません。コメントで説明されているアイデアを使用して、いくつかの改善を加えました)。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clipChildren="false"
android:clipToPadding="false"
tools:ignore="UselessParent" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clipChildren="false"
android:clipToPadding="false" >
<RelativeLayout
android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clipChildren="false"
android:clipToPadding="false" >
</RelativeLayout>
</FrameLayout>
</FrameLayout>
次に、以下に、単純なUIレイアウト、テキストビュー、および垂直線形レイアウトを作成しました。これが私のmessage_with_replies.xmlです:
<?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"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/header"
android:layout_width="300dp"
android:layout_height="wrap_content" >
<!-- some text views and buttons here,
I've removed them to keep things simple,
see the screenshot below -->
</LinearLayout>
<LinearLayout
android:id="@+id/replies"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
返信レイアウトの10dpマージンとクリッピングに関連する属性に注意してください。
これで、message_with_repliesレイアウトを使用してアイテムを膨らませ、アクティビティのコンテンツレイアウトに追加してから、別のアイテムを膨らませて、最初のアイテムを含むreplies線形レイアウトに追加することができます。これにより、ツリーのような階層が作成されます。 。また、ツリー全体が表示され、水平方向と垂直方向の両方にスクロールされます。
ただし、画面サイズによってレイアウトが制限されているようです。私には2つの問題があります:
1)右端を超えるアイテムは見栄えがしますが、ユーザー入力を受け取りません。2)下端を超えたレイアウトがめちゃくちゃです。
これがスクリーンショットです。左から右へ:1)すべてが正常に見えます、2)おっと、ボタンは端にあります、3)おっと、底はめちゃくちゃです。
シンプルだけど隠されたものを見逃したようです。画面の端を超えてレイアウトを機能させるにはどうすればよいですか?