1

私のレイアウトは、画面サイズ 5.0 インチ、mdpi(480*800) のエミュレーターで正しく表示されます。画面サイズ 5.0 インチ、196ppi(480*854) のデバイスでアプリを実行すると、レイアウトが下から切れてしまいます。

使ってみ<supports-screens>ましたが特に変化はありませんでした。

レイアウト.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/create_trip_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="top"
    android:orientation="vertical" >

    <LinearLayout
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/from_location"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:ems="10"
            android:hint="@string/from_location_hint"
            android:imeOptions="actionGo"
            android:imeActionLabel="Ok"
            android:inputType="text" >

            <requestFocus />
        </EditText>

        <Button
            android:id="@+id/use_current_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:onClick="useCurrentLocation"
            android:text="@string/use_current"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    </LinearLayout>

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:contentDescription="@string/swap_button_contentdescription"
        android:onClick="swapLocations"
        android:scaleType="fitStart"
        android:src="@drawable/swap" />

    <EditText
        android:id="@+id/to_location"
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:gravity="left"
        android:hint="@string/to_location_hint"
        android:imeOptions="actionGo"
        android:imeActionLabel="Ok"
        android:inputType="text" >
    </EditText>

    <LinearLayout
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="25dp"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/departuretime_date"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:clickable="true"
            android:ems="10"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:gravity="center"
            android:hint="@string/departure_date_hint"
            android:inputType="datetime" >
        </EditText>

        <EditText
            android:id="@+id/departuretime_time"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:clickable="true"
            android:ems="10"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:gravity="center"
            android:hint="@string/departure_time_hint"
            android:inputType="datetime" >
        </EditText>

    </LinearLayout>

    <Button
        android:id="@+id/pick_match_create_trip"
        style="@style/big_centered_button_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="80dp"
        android:onClick="pickMatchesButtonClicked"
        android:text="@string/pick_your_matches" />

    <TextView
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="75dp"
        android:text="@string/current_location_textlabel"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/current_location_text"
        style="@style/create_trip_activity_components_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_marginTop="5dp"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <ListView
        android:id="@+id/places_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dp"
        android:background="@color/white" >
    </ListView>

</LinearLayout>
4

3 に答える 3

0

その特定のレイアウトに対して正しいテーマを選択しているかどうかを確認してください。私も同じ問題を抱えていました。

于 2015-06-30T07:08:17.500 に答える
0

唯一の方法は、xml レイアウトで適切にコーディングし、グラフィック レイアウトで使用可能なすべての画面の向きとサイズを確認しながら、ゼロから設計することです。

于 2013-08-03T05:37:48.560 に答える
0

画像密度に関係している可能性があります。720 dp の同じ画像を使用している場合、このように動作する可能性があります。 Streak のように、さらなる参照については、これを確認してください

320dp: 一般的な電話画面 (240x320 ldpi、320x480 mdpi、480x800 hdpi など)。

480dp: Streak のようなトゥイナー タブレット (480x800 mdpi)。

600dp: 7 インチ タブレット (600x1024 mdpi)。

720dp: 10 インチのタブレット (720x1280 mdpi、800x1280 mdpi など)。

http://developer.android.com/guide/practices/screens_support.html

同様の問題がありました.7インチのタブレットに720 dp、720 * 1280を使用しましたが、画面が切り取られ、600 dpの画像を取得すると問題が解決し、エミュレーターでは正常に動作しますが、実際のデバイスでは失敗します. この解決策がうまくいくかどうかわかりません! しかし、それで頑張ってください

于 2013-08-03T05:46:41.707 に答える