2010-10-08 41 views
1

我有一个ViewFlipper定义为包含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

如果问题是如何在Android XML布局文件添加自定义视图,试试这个:

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

打开和关闭标签应该仅仅是完全合格的类自定义视图。

+0

谢谢,这工作,但在我的情况下,视图类是我的主要活动的子类 - 当我这样做的应用程序在OnCreate/SetContentView崩溃。我想接下来的问题是,声明支持声明中定义的视图? – MarkB 2010-10-11 09:19:48

相关问题