我有一个有四个活动的应用程序.所有这些活动应该包括顶部的工具栏和底部的TabLayout. TabLayout有4个标签.单击特定选项卡将进入四个活动之一.
现在我想实现如下代码
1)创建父活动.活动会扩展包含TabLayout的布局.
2)所有其他四项活动都应扩展家长活动.这些活动有自己的xml布局.
ParentActivity.java
public class ParentActivity extends AppCompatActivity { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_parent); Toolbar toolbar = (Toolbar) findVIEwByID(R.ID.toolbar); setSupportActionbar(toolbar); }}
activity_parent.xml
<?xml version="1.0" enCoding="utf-8"?> <relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" xmlns:app="http://schemas.androID.com/apk/res-auto"> <androID.support.v7.Widget.Toolbar androID:ID="@+ID/toolbar" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_alignParenttop="true" androID:background="?attr/colorPrimary" androID:elevation="6dp" androID:minHeight="?attr/actionbarSize" androID:theme="@style/themeOverlay.AppCompat.Dark.Actionbar" app:popuptheme="@style/themeOverlay.AppCompat.light"/> <androID.support.design.Widget.TabLayout androID:ID="@+ID/tab_layout" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_alignParentBottom="true"> <androID.support.design.Widget.TabItem androID:text="One" androID:layout_wIDth="0dp" androID:layout_height="wrap_content"/> <androID.support.design.Widget.TabItem androID:text="Two" androID:layout_wIDth="0dp" androID:layout_height="wrap_content"/> <androID.support.design.Widget.TabItem androID:text="Three" androID:layout_wIDth="0dp" androID:layout_height="wrap_content"/> <androID.support.design.Widget.TabItem androID:text="Four" androID:layout_wIDth="0dp" androID:layout_height="wrap_content"/> </androID.support.design.Widget.TabLayout></relativeLayout>
当我启动OneActivity时,我无法获得我在ParentActivity中创建的工具栏和tablayout.我只获取我在OneActivity的xml文件中声明的内容.
我的预期是这个
这是我在发布后得到的.
解决方法:
如果您在扩展的活动中调用setContentVIEw(),它将完全替换您在ParentActivity中设置和初始化的布局.
相反,在ParentActivity的布局中包含内容VIEwGroup(例如,具有ID内容的FrameLayout),并将扩展活动的布局扩展到其中.这可以通过覆盖ParentActivity中的setContentVIEw(int)方法来完成,如下所示:
@OverrIDepublic voID setContentVIEw(int layoutResID) { super.setContentVIEw(R.layout.activity_parent); getLayoutInflater().inflate(layoutResID, (VIEwGroup) findVIEwByID(R.ID.content));}
您还可以将所有扩展活动的公共设置和初始化移动到该覆盖中.
总结以上是内存溢出为你收集整理的android – 从一个不起作用的常见活动扩展所有活动全部内容,希望文章能够帮你解决android – 从一个不起作用的常见活动扩展所有活动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)