我有一个片段,我试图在其中添加一个扩展类“CategoryOption” LinearLayout。但是,当我在我的 AddView 中执行时onCreateView(),它什么也没有显示。
这是我的片段代码:
public class ContentFragment extends Fragment {
LinearLayout navBarLayout;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.content_fragment, container, false);
    navBarLayout = (LinearLayout) view.findViewById(R.id.navbar_layout);
    navBarLayout.addView(new CategoryOption(getActivity(), R.drawable.ic_action_rss, "RSS Feed"));
    return view;    
}
}
这是我的 content_fragment xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<HorizontalScrollView
    android:id="@+id/horizontalScrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
    <LinearLayout
        android:id="@+id/navbar_layout"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="@android:color/darker_gray"
        android:orientation="horizontal" >
    </LinearLayout>
</HorizontalScrollView>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    <Button
        android:id="@+id/button1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
    <RadioButton
        android:id="@+id/radioButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RadioButton" />
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />
</LinearLayout>
</LinearLayout>
这是我的 CategoryOption 类:
public class CategoryOption extends LinearLayout {
int iconId;
String optionName;
LinearLayout optionLayout;
TextView tvOption;
ImageView ivIcon;
public CategoryOption(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
}
public CategoryOption(Context context, int iconId, String optionName) {
    super(context);
    this.iconId = iconId;
    this.optionName = optionName;
    optionLayout = new LinearLayout(context);
    tvOption = new TextView(context);
    ivIcon = new ImageView(context);
    setupLayout();
    setupTextView();
    setupImageView();
    optionLayout.addView(ivIcon);
    optionLayout.addView(tvOption);
}
private void setupImageView() {
    // TODO Auto-generated method stub
    LayoutParams params = new LayoutParams(36, 36);
    params.setMargins(0, 0, 0, 4);
    ivIcon.setLayoutParams(params);
    ivIcon.setImageResource(iconId);
}
private void setupLayout() {
    // TODO Auto-generated method stub
    optionLayout.setLayoutParams(new LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    optionLayout.setOrientation(LinearLayout.VERTICAL);
    optionLayout.setGravity(Gravity.CENTER);
    optionLayout.setPadding(4, 4, 4, 4);
    optionLayout.setBackgroundColor(Color.parseColor("#DEDEDE"));
}
private void setupTextView() {
    // TODO Auto-generated method stub
    tvOption.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));
    tvOption.setTextColor(Color.parseColor("#111111"));
    tvOption.setText(optionName);
}
public int getIconId() {
    return iconId;
}
public String getOptionName() {
    return optionName;
}
}