【问题标题】:Returning Multiple Views in Fragment?在片段中返回多个视图?
【发布时间】:2015-08-12 19:12:39
【问题描述】:

我像往常一样通过我的 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(),它不适用于 Fragments,所以我刚刚决定 @ 987654324@ 我正在建造的仪表是这样的:

//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 上的仪表?

【问题讨论】:

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


    【解决方案1】:

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

    ((MyCustomActivity)getActivity()).mCircularScales;
    

    【讨论】:

    • 我只是试图实现这个...mCircularScales 会是 Activity 文件中的一个类吧?
    • 不是一个类,而是一个成员变量。您可以在您的方法之外定义它,如下所示: MyCustomActivity extends Activity { private ArrayList mCircularScales;
    • 我明白,但我仍然不确定如何通过我的 XML 布局实现它。如果我从我的 Fragment 访问 mCircularScales,我不知道如何将它包含在我为 XML 返回的 rootView 中。
    【解决方案2】:

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

    1. 如果您希望仪表成为片段的一部分,您可以简单地将自定义库小部件添加到 xml 中的布局中或以编程方式。 通过这样做,您的片段应该管理仪表。
    2. 如果您希望仪表在您在片段之间切换时保持浮动,您可以将仪表添加到包含片段容器(在 xml 中或以编程方式)的根视图(在活动中)。 通过这样做,您的活动应该管理仪表。如果您应该从片段中传递数据,那么在活动中创建并由片段调用的某种“setGaugesData”方法应该很方便。

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-19
      • 2015-12-21
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多