Могу ли я установить contentView внутри ViewFlipper?

1

У меня есть ViewFlipper, который содержит макеты.

Есть ли способ подключить класс для управления каждым макетом отдельно?

Вид вроде setContentView(R.layout.main);, но я не уверен, как ссылаться на 3 разных макета в коде.

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" >
          <ListView android:layout_width="wrap_content" android:id="@+id/ListView" android:layout_height="220dp"></ListView>
          <ViewFlipper android:id="@+id/ViewFlipper" android:layout_width="fill_parent" android:layout_height="fill_parent">
                <LinearLayout android:id="@+id/LinearLayoutST" android:layout_width="fill_parent" android:layout_height="fill_parent">
                      <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/icon"></ImageView>
                </LinearLayout>
                <LinearLayout android:id="@+id/LinearLayoutChart" android:layout_height="fill_parent" android:layout_width="fill_parent">
                      <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 2"></TextView>
                </LinearLayout>
                <LinearLayout android:id="@+id/LinearLayoutDetails" android:layout_height="fill_parent" android:layout_width="fill_parent">
                      <TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="View 3"></TextView>
                </LinearLayout>
          </ViewFlipper>
    </LinearLayout>
Теги:
android-linearlayout
viewflipper

1 ответ

0
Лучший ответ

Вы можете сделать это двумя способами:

  • Прикрепите соответствующий экземпляр класса к виду или макету, который вы хотите манипулировать. Этого достаточно, если вы просто хотите использовать обычные вызовы, установить OnClickListeners и т.д.:

    LinearLayout layoutChart = (LinearLayout) findViewById (R.id.LinearLayoutChart);

  • Если вам необходимо переопределить поведение класса по умолчанию (например, подкласс), создайте расширенный класс:

    public class LinearLayoutChart расширяет LinearLayout { ...}

Обязательно реализуйте все родительские конструкторы (даже если вы просто переходите к вызову super...), особенно те, которые принимают атрибуты.

Внедрите свой настраиваемый код в класс расширения.

Затем отредактируйте свой макет xml и замените тег LinearLayout и конечный тег на полное имя класса вашего специального класса, включая его имя пакета

<com.mycompany.mypackage.LinearLayoutChart>
<!-- layout definition as before -->
</com.mycompany.mypackage.LinearLayoutChart>

Это заставит макет наполнителя создать экземпляр вашего класса вместо запаса, поэтому вы можете переопределить защищенные методы и т.д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню