私は何度もRelativeLayoutの要素を揃えようとしましたが、期待した結果が得られません。
最初のボタンを右上に揃えたいのですが、複数のTextviewがあり、それらすべてをスクロール可能にしたいのですが、タグを挿入するとエラーが発生します。これが私のコードです。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/RL01"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical"
Android:padding="5dp">
<ScrollView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<Button
Android:id="@+id/btnBrowser"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Browser"
Android:layout_marginTop="5dp"
>
</Button>
<TextView
Android:id="@+id/txtAuthor"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="20dp"
Android:textStyle="bold"
Android:textColor="#143781"
Android:layout_marginTop="10dp"
Android:layout_marginLeft="20dp"
Android:layout_below="@+id/btnBrowser"
>
</TextView>
<TextView
Android:id="@+id/txtDate"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="14dp"
Android:textColor="#8D89B3"
Android:layout_marginTop="5dp"
Android:layout_marginLeft="20dp"
Android:layout_below="@+id/txtAuthor">
</TextView>
<TextView
Android:id="@+id/txtTitle"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="14dp"
Android:textStyle="bold"
Android:textColor="#000000"
Android:layout_marginLeft="20dp"
Android:layout_marginTop="5dp"
Android:layout_below="@+id/txtDate">
>
</TextView>
<TextView
Android:id="@+id/txtMsg"
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:textSize="14dp"
Android:textColor="#000000"
Android:layout_marginLeft="20dp"
Android:layout_below="@+id/txtTitle">
</TextView>
<Button
Android:id="@+id/btnReply"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Reply"
Android:layout_marginTop="20dp"
Android:layout_below="@+id/txtMsg"
Android:layout_centerInParent="@+id/txtMsg">
</Button>
</ScrollView>
</RelativeLayout>
ScrollView
は複数の直接の子を許可しないため、エラーが発生します。したがって、次のようにします。
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:layout_alignParentTop="true"
Android:text="Button" />
<TextView
Android:id="@+id/textView1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_below="@+id/button1"
Android:text="TextView" />
<TextView
Android:id="@+id/textView2"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_below="@+id/textView1"
Android:text="TextView" />
<TextView
Android:id="@+id/textView3"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_below="@+id/textView2"
Android:text="TextView" />
<Button
Android:id="@+id/button2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true"
Android:layout_below="@+id/textView3"
Android:text="Button" />
</RelativeLayout>
</ScrollView>
スクロールビューに複数のウィジェットを配置することはできません。これには、ウィジェットをビューでラップする必要があります。以下のように
<ScrollView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent" >
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent" >
<Button
Android:id="@+id/btnBrowser"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerVertical="false"
Android:layout_marginTop="5dp"
Android:text="Browser" >
</Button>
<TextView
Android:id="@+id/txtAuthor"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/btnBrowser"
Android:layout_marginLeft="20dp"
Android:layout_marginTop="10dp"
Android:text="Text"
Android:textColor="#143781"
Android:textSize="20dp"
Android:textStyle="bold" >
</TextView>
<TextView
Android:id="@+id/txtDate"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/txtAuthor"
Android:layout_marginLeft="20dp"
Android:layout_marginTop="5dp"
Android:textColor="#8D89B3"
Android:textSize="14dp" Android:text="Text"
>
</TextView>
<TextView
Android:id="@+id/txtTitle"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/txtDate"
Android:layout_marginLeft="20dp"
Android:layout_marginTop="5dp"
Android:textColor="#000000"
Android:textSize="14dp"
Android:textStyle="bold" Android:text="Text">
</TextView>
<TextView
Android:id="@+id/txtMsg"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/txtTitle"
Android:layout_marginLeft="20dp"
Android:textColor="#000000"
Android:textSize="14dp" Android:text="Text">
</TextView>
<Button
Android:id="@+id/btnReply"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/txtMsg"
Android:layout_centerInParent="@+id/txtMsg"
Android:layout_marginTop="20dp"
Android:text="Reply" >
</Button>
</RelativeLayout>
</ScrollView>
scrollview
内にrelativelayout
を追加しています。結果を取得するには、Relativelayout
をscrollview
内に追加する必要があります。もう1つscrollview
は一度に1つの子しか含めることができないため、relativelayout
をscrollview
に追加して違いを確認します