2

これは StackOverflow に関する私の最初の質問です =)

私は Android Studio 1.0.2 (トップ アップデート) を使用しており、Nexus 5 の縦向きに 1 つの列、Nexus 5 の横向きに 2 つの列を持つグリッド レイアウトを作成したいと考えています。Nexus 5 は 640 x 360 dp なので、「layout」、「layout-w600dp」、「layout-w600dp-land」の 3 つのフォルダーがあります (念のため)。

「レイアウト」フォルダーの「fragment_main.xml」は次のようになります。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity$PlaceholderFragment">
    <GridView
        android:id="@+id/gridview_products"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="1"/>
</FrameLayout>    

「layout-w600dp」と「layout-w600dp-land」フォルダーの唯一の違いは

android:numColumns="2"

Android Studio では、「layout-w600dp-land」が使用されていることがわかります。画面はこちら: https://pp.vk.me/c625530/v625530960/19a4d/G7irG51csn8.jpg 実際のデバイスでは、画面を回転させても 2 列になりません。画面はこちら:https ://pp.vk.me/c625530/v625530960/19a57/mmCdluXWSQw.jpg

この問題の原因は何ですか?

4

2 に答える 2

2

「layout-w600dp」の名前を「layout-w595dp」に変更するだけで、Nexus 5 で動作します。よりレスポンシブなデザインを得るために、より大きな画面用に 2 つ以上の列を持つレイアウトを作成することもできます。

于 2015-02-04T01:02:03.450 に答える
0

グリッド ビューに複数の列がある場合、列幅を定義する必要があります。これは、私のアプリの 1 つからのグリッド ビューです。

 <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/grid1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:padding="10dp"
        android:numColumns="2"
        android:columnWidth="100dp"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp"      
        android:gravity="center"
        android:background="@android:color/transparent"
        android:stretchMode="columnWidth" >

</GridView>

必要に応じて、android:numColumns="auto_fit" を使用して、サイズ columnWidth のできるだけ多くの列を作成することもできます。

于 2015-02-03T21:06:07.310 に答える