Как добавить splitView в splitView в Android (Multi-View Panes) - PullRequest
0 голосов
/ 19 декабря 2011

splitView within splitView

Я хотел бы реализовать splitView на основе логики, представленной на изображении, показанном в Android.

Возможно ли это на самом деле сделать?Если да, то может ли кто-нибудь посоветовать, как мне лучше поступить с примером?

Большое спасибо.

Ответы [ 4 ]

0 голосов
/ 28 декабря 2011

Это может быть одно решение

<?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="horizontal"
    android:weightSum="1.0" >

    <LinearLayout
        android:layout_width="0px"
        android:layout_height="fill_parent"
        android:layout_weight=".50" />

    <LinearLayout
        android:layout_width="0px"
        android:layout_height="fill_parent"
        android:layout_weight=".50"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0px"
            android:layout_weight=".25" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0px"
            android:layout_weight=".25" />
    </LinearLayout>

</LinearLayout>

Но веса макета требуют, чтобы виджет был измерен дважды. Когда LinearLayout с ненулевыми весами вложен в другой LinearLayout с ненулевыми весами, то количество измерений увеличивается в геометрической прогрессии.

Также проверьте эту ссылку для некоторых альтернатив, использующих относительное расположение. Но вы не можете использовать веса в относительном расположении.

0 голосов
/ 24 декабря 2011

Лучший способ сделать это - использовать фрагменты.Несмотря на то, что они являются новыми в Honeycomb, пакет для Android-совместимости поддерживает их вплоть до уровня API 4. http://developer.android.com/reference/android/app/Fragment.html

0 голосов
/ 28 декабря 2011

попробуйте этот код для разметки XML `

       <LinearLayout
       android:id="@+id/linearLayout1"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:layout_weight="1"
       android:orientation="vertical" >

       <View
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:background="#234567" />
      </LinearLayout>

      <LinearLayout
      android:id="@+id/linearLayout2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:background="#ffffff"
      android:orientation="vertical"
      android:weightSum="2" >

      <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="2dip"
        android:layout_weight="1"
        android:background="#234545"
        android:orientation="vertical" >

        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#234567" />
      </LinearLayout>

      <LinearLayout
        android:id="@+id/linearLayout4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="2dip"
        android:layout_weight="1"
        android:background="#235656"
        android:orientation="vertical" >

        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#234567" />
      </LinearLayout>
      </LinearLayout>

      </LinearLayout>`
0 голосов
/ 23 декабря 2011

Я думаю, что это будет делать то, что вы хотите использовать под файлом макета и при нажатии

<?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:id="@+id/root"
        android:orientation="horizontal" >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" />
        <LinearLayout
            android:id="@+id/base"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" >
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1" />
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1" />
        </LinearLayout>
    </LinearLayout>
  1. Вторая кнопка изменяет orientation корня на vertical и базы на horizontal.
  2. Первая кнопка отменяет изменения, которые сделают такой layout
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...