我有application
,其中有activities
个toolbar
。所有这些活动应包含顶部的TabLayout
和底部的TabLayout
。 tab
有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文件中声明的内容。
我的预期是这个
这是我在发布后得到的。
答案 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));
}
您还可以将所有扩展活动共有的设置和初始化移动到该覆盖中。