将所有活动从不起作用的共同活动中扩展

时间:2016-04-27 14:03:00

标签: android

我有application,其中有activitiestoolbar。所有这些活动应包含顶部的TabLayout和底部的TabLayouttab有4个标签。点击特定 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); } } 即可参加四项活动之一。

现在我想实现如下代码

1)创建父活动。活动会扩展包含TabLayout的布局。

2)所有其他四项活动都应扩展家长活动。这些活动有自己的xml布局。

ParentActivity.java

  <?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>

activity_parent.xml

void onSuccess(RestApi.Success<?> successResult);

当我启动OneActivity时,我无法获得我在ParentActivity中创建的工具栏和tablayout。我只获得了我在OneActivity的xml文件中声明的内容。

我的预期是这个

enter image description here

这是我在发布后得到的。

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您在扩展的活动中调用setContentView(),它会完全替换您在ParentActivity中设置和初始化的布局。

相反,在ViewGroup的布局中添加内容FrameLayout - 例如content ID ParentActivity,并将扩展活动的布局扩展到其中。这可以通过覆盖setContentView(int)中的ParentActivity方法来完成,如下所示:

@Override
public void setContentView(int layoutResID) {
    super.setContentView(R.layout.activity_parent);

    getLayoutInflater().inflate(layoutResID,
        (ViewGroup) findViewById(R.id.content));
}

您还可以将所有扩展活动共有的设置和初始化移动到该覆盖中。