package com.example.app;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, new PlaceholderFragment()).commit();
}
}
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}
}
当我在4.3模拟器中运行此代码时,我得到了所需的“Hello world!”信息。在2.3.3模拟器中,我得到一个空白屏幕(ActionBar会显示)。
答案 0 :(得分:2)
显然,这是针对Android 2.3及更低版本的已知错误。这个here存在错误。
v19之前的支持库版本的解决方案:
尝试为Activity
创建XML布局(例如只有ViewGroup
LinearLayout
或RelativeLayout
,并为其指定ID。然后在setContentView(R.layout.newLayout)
的{{1}}中拨打Activity
。然后使用onCreate()
的ID作为ViewGroup
的第一个参数。
此问题自支持库版本19起已解决。如果使用SDK管理器更新到支持库的最新版本,则代码应该可以正常工作。
您可能还会在上面的链接上找到帖子#6。