如何向ViewFlipper添加自定义视图

时间:2010-10-08 13:59:12

标签: android

我定义了一个包含3个视图的ViewFlipper ...

<?xml version="1.0" encoding="utf-8"?>
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flipper" android:layout_width="fill_parent"
android:layout_height="fill_parent">
  <include android:id="@+id/first" layout="@layout/first_view" />
  <include android:id="@+id/second" layout="@layout/second_view" />
  <include android:id="@+id/third" layout="@layout/third_view" />
</ViewFlipper>

我还在我的活动中定义了自定义视图...

private class CompassView extends View { 
  @Override 
  protected void onDraw(Canvas canvas) {
  ...
  }
}

如何,我需要将这些链接在一起,以便XML布局文件中定义的'third_view'需要是CompassView,或者添加了CompassView。

我可以做的是从布局中删除'third_view',然后手动添加CompassView ..

viewFlipper = (ViewFlipper)findViewById(R.id.flipper);
viewFlipper.addView(new CompassView(this));

但是我失去了在布局文件中定义其他视图控件的能力。

我可以声明性地将CompassView添加到'third_view'吗?

1 个答案:

答案 0 :(得分:1)

如果问题是如何在Android XML布局文件中添加自定义视图,请尝试以下操作:

<com.example.CustomView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
</com.example.CustomView>

open和close标签应该只是自定义视图的完全限定类。