1

電話連絡先を表示するリストを作成しています。機能しますが、横向きでは伸びただけなので見栄えがよくありません。

そこで、Landscape では 2 列Portrait では 1 列にすることにしました。グーグルで参照を見つけることができないようです。

それを行う方法はありますか?layout-landカスタム XML をフォルダーに配置するだけでよいのであれば、それは素晴らしいことです

ありがとう

[アップデート]

ポートレートでは、次のようになります。

name 1
name 2
name 3
name 4

横向き:

name 1    name 2
name 3    name 4
4

2 に答える 2

1

http://developer.android.com/training/basics/fragments/index.htmlFragmentを調べてください

基本的に、あなたが提案したように、これには2つのレイアウトフォルダーがあります。

  • res/layout/main.xml (portiat に使用)
  • res/layout-land/main.xml (ランドスケープに使用)

インターフェースを に組み込みFragment、そのうちの 2 つを横向きに、1 つを縦向きに配置します。例えば

public class ContactListFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.contact_list, container, false);
        // do your work
        return view;
    }
}

public class MainActivity extends FragmentActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // configure your fragments here.
    }
}

res\レイアウト\main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <fragment android:name="com.example.android.fragments.ContactListFragment"
              android:id="@+id/contact_list_fragment"
              android:layout_width="match_parent"
              android:layout_height="match_parent" />

</LinearLayout>

res\layout-land\main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <fragment android:name="com.example.android.fragments.ContactListFragment"
              android:id="@+id/contact_list_fragment1"
              android:layout_weight="1"
              android:layout_width="0dp"
              android:layout_height="match_parent" />

    <fragment android:name="com.example.android.fragments.ContactListFragment"
              android:id="@+id/contact_list_fragment2"
              android:layout_weight="1"
              android:layout_width="0dp"
              android:layout_height="match_parent" />


</LinearLayout>
于 2012-11-20T03:52:08.227 に答える
0

GridView を使用する必要がありました。方向に応じて、numColumns フィールドを 1 または 2 に変更します。

于 2015-11-03T20:58:48.867 に答える