首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >同一片段中的ListView和自定义SurfaceView

同一片段中的ListView和自定义SurfaceView
EN

Stack Overflow用户
提问于 2016-09-11 23:51:58
回答 1查看 67关注 0票数 0

我正在编写一个自定义的SurfaceView实现:

CustomSurfaceView.java

代码语言:javascript
运行
复制
public class CustomSurfaceView extends SurfaceView {
  private void init() { }

  // ...
}

我想从片段myFragment调用CustomSurfaceView。我在网上能找到的每个例子都是这样做的

代码语言:javascript
运行
复制
class myFragment extends Fragment {
  // ...

  public View onCreateView() {
    return new CustomSurfaceView(getActivity());
  }
}

这种方法的问题是,我在myFragment中也有一个ListView,myList。它是这样工作的:

my_fragment.xml

代码语言:javascript
运行
复制
<LinearLayout>
  <ListView id="@+id/my_list"/>
  <SurfaceView id="@+id/custom_surface_view"/>
</LinearLayout>

myFragment.java

代码语言:javascript
运行
复制
class myFragment extends Fragment {
  // ...

  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.my_fragment, container, false);

    myList = (ListView) view.findViewById(R.id.my_list);

    return view;
  }
}

这种配置在没有CustomSurfaceView的情况下工作得很好。

然后,我尝试在myList = ...之后添加

代码语言:javascript
运行
复制
customSurfaceView = (CustomSurfaceView) view.findViewById(R.id.custom_surface_view);

这将导致Unexpected cast to CustomSurfaceView: layout tag was SurfaceView

如果在我的xml布局文件中将<SurfaceView/>更改为<com.example.CustomSurfaceView/>,我会得到一个运行时崩溃(Binary XML : Error inflating class com.example.CustomSurfaceView)。

所以我的问题是:我做错了什么?在同一个myFragment中同时包含ListViewCustomSurfaceView的正确、有效的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2016-09-12 03:12:00

问题是我没有通过构造函数来定义合适的规范。

将以下代码添加到CustomSurfaceView.java中删除了error inflating崩溃:

代码语言:javascript
运行
复制
public CustomSurfaceView(Context context, AttributeSet attrs) {
  super(context, attrs);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39437917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档