使用上下文类膨胀布局
Posted
技术标签:
【中文标题】使用上下文类膨胀布局【英文标题】:Inflate layout with context class 【发布时间】:2018-03-14 16:46:44 【问题描述】:我有两个活动,有两个对应的布局:
MainActivity.java
-> content_main.xml
SecondActivity.java
-> content_secondclass.xml
我的 MainActivity 膨胀 content_secondclass.xml
没有问题:
RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.content_main);
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.content_secondclass, null);
mainLayout.removeAllViews();
mainLayout.addView(layout);
我如何给这个通货膨胀SecondActivity.java
的背景?我不想启动另一个 Intent,因为它会在新窗口中打开,并且我使用的是 Navigation Drawer 样式的应用程序。我希望在扩展 content_secondclass.xml 时调用 SecondActivity,但现在它只是在扩展 content_secondclass 而不调用 SecondActivity.java。
我的 content_secondclass.xml 已经有了“.SecondActivity”的tools:context
标签
希望我能理解我的意思。非常感谢您在此问题上的时间和帮助。
【问题讨论】:
在谷歌中寻找一种叫做“片段”的东西。 这不是一个活动如何膨胀 xml 布局,而是在 oncreate 上使用 setcontentview 【参考方案1】:我有点理解你的问题。正如我的猜测,您希望在您的第一个(主)布局内的第二个布局(视图)中进行一些 java 工作,而无需打开另一个活动。
使用片段的最佳方法。使用片段,您将拥有灵活的 UI,并且每个片段在一个活动中都有相应的 Java 控制器。如果您是 android 新手,请阅读片段教程。关于片段的一些基础知识click here
最好的问候
【讨论】:
感谢两位的解答,一定会看碎片的。【参考方案2】:保存导航抽屉的主布局应该是框架布局并创建框架布局对象
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
transaction.replace(R.id.frame_container, fragment);
transaction.addToBackStack(tag);
transaction.commit();
这里的fragment是你创建的fragment的对象
【讨论】:
以上是关于使用上下文类膨胀布局的主要内容,如果未能解决你的问题,请参考以下文章