在片段中返回多个视图?

时间:2015-08-12 19:12:39

标签: java android xml android-fragments android-view

我像往常一样通过我的Fragments Java文件来扩充我的XML:

public class FragmentJava extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    View rootView = inflater.inflate(R.layout.fragment_drive_layout, container, false);

然后当然

return rootView;}}

这很好用,但是,我也试图利用Syncfusion库来获取我的屏幕上的量表,这需要我setContentView(),它不能使用片段,所以我&#39我刚刚决定return我建造的仪表:

//Create the gauge:

SfCircularGauge circularGauge = new SfCircularGauge(getActivity());
ArrayList<CircularScale> _circularScales = new ArrayList<CircularScale>();
CircularScale circularScale = new CircularScale();

// etc. etc., other settings...

circularGauge.setCircularScales(_circularScales);

然后我只返回圆形量规的这个实例:

return circularGauge;

而不是

return rootView;

显然,我这样做会丢失所有的XML元素,并且我将测量结果覆盖在活动上,这是一个带有背景颜色的普通RelativeLayout而不是我XML中所有令人惊叹的图形元素; (

我对Java不是很了解,但有没有办法返回XML的rootView,然后返回XML的指标?

2 个答案:

答案 0 :(得分:0)

我不熟悉Syncfusion,但您应该可以在onCreate方法的活动级别上执行此调用。将生成的数组加载到活动的公共成员变量中。然后在你的片段的onCreateView(或片段中的任何地方),你可以像这样访问它:

((MyCustomActivity)getActivity()).mCircularScales;

答案 1 :(得分:0)

有两种方法可以解决这个问题,这取决于使用方法。

  1. 如果您希望量表成为片段的一部分,您只需将自定义库窗口小部件添加到xml中的布局中或以编程方式。 通过这样做,你的片段应该管理仪表。
  2. 如果您希望在切片之间切换时仪表保持漂浮状态,您可以将仪表添加到根视图中(在活动中),其中包含碎片&#39;容器(以xml或以编程方式)。 通过这样做,您的活动应该管理仪表。如果你应该从片段中传递某些类型的数据,那么就可以使用setGaugesData&#34;在活动中创建并由片段调用的方法应该很方便。
  3. 祝你好运。