好吧我有一个片段,我想在其'xml文件中包含另一个以编程方式膨胀的布局
片段:
{('Alabama', 660367.0), ('Alabama', 353089.0), …
xml的片段文件:
public class zGoal_Fragment extends Fragment{
private LinearLayout todayView;
private View view;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.main_goal_view, container, false);
todayView = (LinearLayout)view.findViewById(R.id.todayView);
return view;
}
}
我希望以编程方式包含在上面的xml中的和xml布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:id="@+id/todayView"
>
</LinearLayout>
我尝试了几种不同的方法,所有这些方法导致“在空对象引用上”错误......
plz help:))
答案 0 :(得分:0)
我认为您正在寻找的解决方案是Android ViewStubs。这些是动态膨胀的布局。
有关详细信息,请参阅以下内容:
How to use View Stub in android
https://developer.android.com/reference/android/view/ViewStub.html
但是,如果您不希望在运行时期间将一个布局扩充到另一个布局中,您可以尝试使用 include 标记:< / p>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:id="@+id/todayView">
<include layout="@layout/your_layout_file_name"/>
</LinearLayout>
答案 1 :(得分:0)
你有没有试过这样的事情:
LinearLayout child = getLayoutInflater().inflate(R.layout.goalEditLayout, null);
todayView.addView(child);
编辑: 在onCreateView里面:
LinearLayout inflatedLayout = (LinearLayout) inflater.inflate(R.layout.goalEditLayout, todayView, true);