これは、私が使用していレイアウトされています左マージン(Androidアプリ)に右マージンとテキストに画像を合わせるしようとしている
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="30dip"
>
<LinearLayout
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent" >
<RelativeLayout
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="fill_horizontal"
>
<TextView android:id="@+id/poi_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_alignParentLeft="true"
/>
<ImageView android:id="@+id/internet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/internet"
android:adjustViewBounds="true"
android:maxHeight="20sp"
/>
</RelativeLayout>
...
</LinearLayout>
</ScrollView>
ただし、テキストが左に整列表示されますが、画像が表示されます。テキストと同じ高さで(期待どおり)、水平に画面中央に表示されます。なぜそれは右に揃えられていないのですか? RelativeLayout
にandroid:gravity
という属性の異なる組み合わせを試してみましたが、成功しませんでした。
画像の属性は「sp」単位で設定されています。これは、画像を付随するテキストに比例させたいからです。あれは正しいですか ?
フィードバックいただきありがとうございます。
UPDATE:私はLinearLayout
代わりのRelativeLayout
を使用してこの問題を解決するために管理する@ danh32の答えに
感謝。しかし好奇心の念から、私の例のRelativeLayout
で問題が何か分かっていれば、感謝しています。
回答@ danh32ありがとうございました。実際に私はdrawableRight属性を知らなかった。クリックしたときにブラウザを開くために、画像にonClickリスナーを添付する必要があります。あなたが言及した属性を使ってそれを宣言すれば、同じリスナーを画像に付けることは可能ですか? onClickリスナーは、左側のテキストではなく、イメージをクリックするときにのみアクティブにする必要があります。 – Sergio
ああ、drawableRight属性を使用しないでください。ビューレベルでクリックターゲットを指定できるのは、画像を反応させることはできませんが、テキストは反応しません。私が通常この問題を解決する方法は、textviewのwidth = "0dp"とlayout_weight = "1"を設定することです。これにより、テキストビューはレイアウト内の余分なスペースを食い止めることができ、イメージビューを右に押す必要があります。ただし、これはLinearLayoutsでのみ機能します。 RelativeLayoutsではありません。 – danh32
LinearLayoutに変更し、あなたが言うように、テキストビューに属性layout_weight = "1"を追加すると、それは機能します。明らかにwidth = "0dp"は必要ではありませんでした(しかし、あなたは私にその理由を教えてくれました。その場合、その属性を0に設定する必要があります)。 Text/Imageビューのlayout_alignParentLeft = "true"とlayout_alignParentRight = "true"をgravity = "left"とgravity = "right"に置き換えました。 – Sergio