0

我有创建视图的片段。我需要它来处理多点触控事件。

片段代码:

public class ControllerFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.controller_fragment, container, false);

        TouchEventView mView = new TouchEventView(v, container);
     //...
    }

    // ...
}

但主要问题是我的视图没有布局。它只是黑色,没有R.layout.controller_fragment中的按钮、textViews 和其他东西

那么,我应该如何为我的扩展视图设置布局?

触摸事件视图:

public class TouchEventView extends View {

    public TouchEventView(View v, ViewGroup container) {
       super(v.getContext());
    }

    // ...
}
4

1 回答 1

0

我发现主要问题是 TouchEventView 扩展了 View。它应该扩展与 R.layout.controller_fragment 中相同的布局。

所以我在构造函数中添加了 LayoutInflater 并从片段中传递了它。然后我从 TouchEventView 构造函数中膨胀了布局。现在看起来像这样:

分段:

public class ControllerFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.controller_fragment, container, false);
        TouchEventView mView = new TouchEventView(v, inflater);  
    //...
    }

    // ...
}

扩展视图(布局):

public class TouchEventView extends LinearLayout {

    public TouchEventView(View v, LayoutInflater inflater) {
        super(v.getContext());
        inflater.inflate(R.layout.smart_tv_controller_fragment, this, true);
    }
于 2013-09-18T09:13:31.863 回答