我使用导航抽屉和searchview创建了一个baseactivity。我试图在其他活动中扩展它,但也有不同的内容。但是,如果我扩展基本活动,并尝试设置不同的内容视图,我不会获得导航抽屉/搜索视图。
如何扩展基本活动,但仍为每项活动自定义ui?
谢谢你的帮助!
答案 0 :(得分:0)
执行此操作的最佳方法是使用Fragments。但是,要使用多个活动,请扩展基本活动,然后将setContentView()与该活动的布局一起使用。确保该布局的xml也包含导航抽屉布局。
答案 1 :(得分:0)
听起来你想做这样的事情。你会看到任何继承自这个活动并调用setContentView的活动现在都会将它们的内容添加到你已经夸大的导航布局中的内容框架中。
public class BaseActivity extends FragmentActivity
{
private FrameLayout mContentFrame;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// notice we call super.setContentView here
super.setContentView(R.layout.activity_main);
// and other nav stuff here
mContentFrame = findViewById(R.id.content_frame);
}
@Override
public void setContentView(int layoutResID)
{
setContentView(getLayoutInflater().inflate(layoutResID, mContentFrame, false));
}
@Override
public void setContentView(View view)
{
mContentFrame.removeAllViews();
mContentFrame.addView(view);
}
@Override
public void setContentView(View view, LayoutParams params)
{
mContentFrame.removeAllViews();
addContentView(view, params);
}
@Override
public void addContentView(View view, LayoutParams params)
{
mContentFrame.addView(view, params);
}
}