以下设置不起作用,是否有人知道原因(我似乎无法在片段中找到自定义曲面视图的示例)。
我的surfaceView类目前只是空洞的:
class MySurfaceView extends SurfaceView implements Runnable{
public MySurfaceView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
public void run() {
// TODO Auto-generated method stub
}
}
片段的我的XML看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout2"
android:layout_width="500dp"
android:layout_height="600dp"
android:layout_gravity="fill"
android:background="#000000" >
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<com.example.android.fragments.MySurfaceView
android:id="@+id/surfaceview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
然后在OnCreateView上的实际Fragment本身中我调用:
return inflater.inflate(R.layout.article_view, container, false);
为什么这不会挂在一起的任何想法?
它与XML有关,因为当我这样做时
<SurfaceView
android:id="@+id/surfaceview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
然后它工作正常。
答案 0 :(得分:1)
如果您只想在片段中显示自定义SurfaceView('MySurfaceView'),那么只需执行以下操作:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return new MySurfaceView(getActivity());
}
答案 1 :(得分:0)
如果你检查答案很简单:
http://developer.android.com/guide/components/fragments.html#Creating
你会看到在onCreateView上你应该返回用于呈现片段的视图
@Override
public View onCreateView( String name , Context context , AttributeSet attrs )
{
// TODO Auto-generated method stub
return super.onCreateView( name , context , attrs );
}
你应该返回View,所以基本上你应该回到那里
MySurfaceView
//修改
public MySurfaceView ( Context context , AttributeSet attrs , int defStyle )
{
super( context , attrs , defStyle );
// TODO Auto-generated constructor stub
}
public MySurfaceView ( Context context , AttributeSet attrs )
{
super( context , attrs );
// TODO Auto-generated constructor stub
}
public MySurfaceView ( Context context )
{
super( context );
}
尝试实现此视图的所有3个构造函数