我使用Merge -Tag作为我的课程扩展Fragement。但是当我试图访问R类的元素时,我遇到了错误。
我的logcat显示:" android.view.InflateException:只能用于有效的ViewGroup root和attachToRoot = true" 。
贝娄是我的source code
。请帮我。对不起我的英语,这不好。
public class DetailHeader extends Fragment {
ImageView imageView;
TextView textHeader;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
LinearLayout wrapper = new LinearLayout(getActivity()); // for example
inflater.inflate(R.layout.detail_header, wrapper, true);
View view = inflater.inflate(R.layout.detail_header, null);
imageView =(ImageView)view.findViewById(R.id.image);
textHeader =(TextView)view.findViewById(R.id.textViewHeader);
imageView.setImageResource(R.drawable.dengiong);
return wrapper;
}
}
这是我的xml file
:
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitCenter"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textViewHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="20dip"
android:padding="12dip"
android:text="Golden Gate"
android:textColor="#ffffffff" />
</merge>
答案 0 :(得分:0)
如果您在布局中使用<merge>
标记作为根视图,则该布局只能通过其他布局中的<include>
使用。否则,您的虚增布局没有用于保存子视图的根ViewGroup
(在您的情况下为ImageView
和TextView
。)因此您需要将<merge>
替换为ViewGroup
真实LinearLayout
实例,例如FrameLayout
或{{1}}。