如何从扩展 activity 扩展布局?
How to inflate layout from extended activity?
我从 ActionBarActivity
扩展了 BaseActivity
,我在其中设置了 activity 的内容。我使用的布局文件中有一个 FrameLayout
。
当我扩展 BaseActivity
以用于例如MainActivity
,我想 MainActivity
使用自定义布局文件扩充 FrameLayout
。
我想不出解决办法。我总是有错误。这就是我的进展。
BaseActivity.java
public class BaseActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.base);
}
}
MainActivity.java
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
FrameLayout mFrame = (FrameLayout) findViewById(R.id.content);
mFrame.addView(LayoutInflater.from(context).inflate(R.layout.activity_nav_test, mFrame, true));
return super.onCreateView(parent, name, context, attrs);
}
非常感谢您的帮助!
克里斯
您的方法似乎是正确的,但改为在 onCreate
方法中添加框架布局内的视图。
public class MainActivity 扩展了 BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FrameLayout mFrame = (FrameLayout) findViewById(R.id.content);
mFrame.addView(LayoutInflater.from(this).inflate(R.layout.activity_nav_test, mFrame, true));
}
在这个方法中:
@Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
FrameLayout mFrame = (FrameLayout) findViewById(R.id.content);
mFrame.addView(LayoutInflater.from(context).inflate(R.layout.activity_nav_test, mFrame, true));
return super.onCreateView(parent, name, context, attrs);
}
您必须 return 您的自定义视图。试试这个。希望对你有帮助
return mFrame;
我从 ActionBarActivity
扩展了 BaseActivity
,我在其中设置了 activity 的内容。我使用的布局文件中有一个 FrameLayout
。
当我扩展 BaseActivity
以用于例如MainActivity
,我想 MainActivity
使用自定义布局文件扩充 FrameLayout
。
我想不出解决办法。我总是有错误。这就是我的进展。
BaseActivity.java
public class BaseActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.base);
}
}
MainActivity.java
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
FrameLayout mFrame = (FrameLayout) findViewById(R.id.content);
mFrame.addView(LayoutInflater.from(context).inflate(R.layout.activity_nav_test, mFrame, true));
return super.onCreateView(parent, name, context, attrs);
}
非常感谢您的帮助! 克里斯
您的方法似乎是正确的,但改为在 onCreate
方法中添加框架布局内的视图。
public class MainActivity 扩展了 BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FrameLayout mFrame = (FrameLayout) findViewById(R.id.content);
mFrame.addView(LayoutInflater.from(this).inflate(R.layout.activity_nav_test, mFrame, true));
}
在这个方法中:
@Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
FrameLayout mFrame = (FrameLayout) findViewById(R.id.content);
mFrame.addView(LayoutInflater.from(context).inflate(R.layout.activity_nav_test, mFrame, true));
return super.onCreateView(parent, name, context, attrs);
}
您必须 return 您的自定义视图。试试这个。希望对你有帮助
return mFrame;