我需要LayoutInflater的帮助。
在我的项目中,我收到“避免将null作为视图根传递(需要解析布局参数...)”的警告。
当在OnCreate方法中出现类似以下内容时,此警告来自Activity:

LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.my_view, null);


例如,它用于膨胀标题。

我知道,当我在Fragment或Adapter中使用LayoutInflater时,我拥有ViewGroup对象,可以将其传递为null,但是当它处于Activity中时,在这种情况下该怎么办?我应该禁止此警告并传递null还是以某种方式创建父对象?

编辑:

public void addTextField(String message, int textSize) {
    LinearLayout field = (LinearLayout) getLayoutInflater().inflate(R.layout.text_view_field, null);
    TextView textView = (TextView) field.findViewById(R.id.taroTextView);
    textView.setText(message);
    textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize);
    textView.setSingleLine(false);
    mFieldsLayout.addView(field, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}


要么:

public class MyActionBarActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayShowTitleEnabled(false);
        LayoutInflater inflater = LayoutInflater.from(this);

        View customView = inflater.inflate(R.layout.action_bar_layout, null);
        actionBar.setCustomView(customView);
        actionBar.setDisplayShowCustomEnabled(true);
    }
}


}

最佳答案

您为什么不直接在活动中致电getLayoutInflater()

如下:

View view = getLayoutInflater().inflate(R.layout.my_view, null);


null参数没有问题的地方。我的活动效果很好。

关于android - Activity 中的LayoutInflater,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33297264/

10-08 21:38