0

私が思う素早いもの:

埋め込まれた ImageView を正しく配置するために listView を取得できません。

以下に示すように、画像が正しく整列していません (隣接する TextView 内のテキストの量の影響を受けています)。

画像の問題

行項目の問題のある xml ファイルは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:orientation="horizontal" 
android:gravity="left">


<ImageView
    android:id="@+id/flagIcon"
    android:layout_width="60sp"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:layout_weight="0.05"
    android:src="@drawable/orange_flag"/>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:orientation="vertical" 
    >

    <TextView
        android:id="@+id/location_row_item_main_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"/>

    <TextView
        android:id="@+id/location_row_item_secondary_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" 
        android:textSize="12sp"/>

</LinearLayout>

<Button
    android:id="@+id/add_spec_button"
    android:layout_width="60sp"
    android:layout_height="60sp"
    android:layout_gravity="center_vertical"
    android:focusable="false"
    android:text="@string/location_add_spec"
    android:onClick="myClickHandler"/>

</LinearLayout>

何か案は?ありがとう。

4

2 に答える 2

1

ここに画像の説明を入力

レイアウト ビュー

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/ic_play_live" />


    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/ic_play_live" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_alignBottom="@+id/imageView1"
        android:layout_toRightOf="@+id/imageView1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

    </LinearLayout>

</RelativeLayout>
于 2014-01-27T11:10:23.107 に答える
0

次のようなことを試してください:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:orientation="horizontal" 
    android:gravity="left">


    <ImageView
        android:id="@+id/flagIcon"
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:scaleType="centerInside"
        android:src="@drawable/orange_flag"/>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_vertical|left"
        android:orientation="vertical" 
        >

        <TextView
            android:id="@+id/location_row_item_main_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp"/>

        <TextView
            android:id="@+id/location_row_item_secondary_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" 
            android:textSize="12sp"/>

    </LinearLayout>

    <Button
        android:id="@+id/add_spec_button"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:gravity="center"
        android:focusable="false"
        android:text="@string/location_add_spec"
        android:onClick="myClickHandler"/>

</LinearLayout>

主な問題は、中央の縦の幅が原因でしたLinearLayout。また、 の重みImageViewは役に立たず、 で使用されるいくつかの属性がありますRelativeLayout

android:gravity注 1:との違いに注意してくださいandroid:layout_gravity

注 2:sp文字サイズにはサイズ単位が使用されます。ドキュメントから:

dp は、160 dpi でのピクセルの物理サイズに対応する、密度に依存しないピクセルです。
sp は同じ基本単位ですが、ユーザーの好みのテキスト サイズ (スケールに依存しないピクセル) によってスケーリングされるため、テキスト サイズを定義するときはこの測定単位を使用する必要があります (ただし、レイアウト サイズには決して使用しないでください)。

于 2013-02-11T23:11:02.477 に答える