0

アプリを更新したばかりですが、更新した人から奇妙な苦情が寄せられています。在庫のないAndroid携帯(メーカーが変更した携帯電話... HTC携帯、cliq、pulseなど)、Droid、Nexusなどの他の携帯は問題なく動作します。私のアプリ(Photo Frame Deluxe)には、画像ビュー、テキストビュー、ビュー(スペーサー)、チェックボックスがすべて一列に並んだリストがあります。影響を受けた電話で何が起こるかというと、行が重なり始め、すべての上半分が切り取られます。これに対する私のレイアウト コードは以下のとおりです。このレイアウトで何が間違っている可能性があります。これが一部の電話で機能し、他の電話では機能しないのはなぜですか? どんな助けでも大歓迎です。

行のレイアウト:

<?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="wrap_content"
    android:orientation="horizontal">
<ImageView
    android:id="@+id/photorowIcon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:paddingRight="5dp"
    />
<TextView
    android:id="@+id/photorowText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    />
<View
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>
<CheckBox
    android:id="@+id/photorowCheckBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:focusable="false"
    android:focusableInTouchMode="false"
    />  
</LinearLayout>

レイアウト行は次の場所に挿入されます:

<?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:orientation="vertical">
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/title1_gradient"
    android:orientation="vertical">
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Select Photos to Display:"
    android:textSize="20sp"
    android:textStyle="bold"
    android:textColor="#FFFFFFFF"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="5dp"
    />
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/folderName"
    android:textSize="15sp"
    android:textStyle="bold"
    android:textColor="#FFFFFFFF"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingBottom="5dp"
    />
    <View
        android:layout_width="fill_parent"
        android:layout_height="1px"
        android:background="#406C6C6C"/>
    </LinearLayout>
<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="0px"
    android:layout_weight="1"
    android:drawSelectorOnTop="false"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    />
<LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="bottom">    
    <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_gravity="bottom"
            android:background="#FF6C6C6C" 
            android:padding="5dp">
            <Button
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/ok"
                android:text="OK"/>
    </LinearLayout>
</LinearLayout>
</LinearLayout>
4

3 に答える 3

3

私も同じ問題を抱えていました。これは 2 Verizon Eris と 1.5 シミュレーターで明らかでした。G1 (v1.6)、moto Droid (2.0.1)、またはシミュレーター 1.6 以降では発生しません。

これは、ListActivity にバインドされた ListView 内、および垂直方向の LinearLayout 内で発生しました。どちらの場合も、それぞれに RelativeLayouts をフィードしていましたが、それらのトップを失い続けていました

私はhierarchyViewerを使用し、すべての気の毒なことをいじって、ぐるぐる回しました。RelativeLayout の minHeight を表示されているものよりも大きい値に手動で設定した後、問題は SIZING だけでなく、SHIFTING であることがわかりました。RelativeLayout のすべてがビューの上部を超えてプッシュされていました。

これにより、上記のサンドスの答えを精神的に再検討しました:「重力と関係がある」

RelativeLayout(リストの各「行」を収容)に、次のように置きます:

android:gravity="center_vertical"

これは大きな違いをもたらしました。

1.5でもまだ行が狭く見えますが、使用可能であり、そのまま維持できます。

于 2010-03-18T22:29:18.660 に答える
1

ur listView タグの属性を変更する

android:layout_height="fill_parent"
于 2010-02-27T09:52:11.543 に答える
0

問題を特定することはできませんが、Android のマイナー バージョン間でレイアウトが (残念ながら!) 変更される可能性があることは知っています。1.5 から 1.6 に移行したばかりで、特にリスト内のレイアウトに問題がいくつか見られました。さらに問題だったのは、エミュレータがこれを適切にエミュレートしなかったため、修正が非常に困難でした。重力と関係があることを覚えているので、その部分をいじっていました。また、ネストされた線形レイアウトよりもリソースの消費が少ないため、RelativeLayout を使用してみてください。

また、SDK のレイアウト ツール、layoutopt、Hiearhcy Viewer を使用してみてください。

于 2010-02-04T20:37:49.470 に答える