加载抛出RuntimeException的XML文件

时间:2012-08-01 04:34:54

标签: android android-layout xamarin.android layout-inflater

我正在使用以下XML文件来创建布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget28"
    android:layout_width="fill_parent"
    android:layout_height="80px">
  <LinearLayout
      android:id="@+id/linearText"
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:orientation="vertical"
      android:layout_marginLeft="10px"
      android:layout_marginTop="10px">
    <TextView
        android:id="@+id/txtAirLineCodeLv"
        android:text="TextView" />
    <ImageView
    android:id="@+id/StopDetailBtnLv"/>
    <TextView
        android:id="@+id/txtPriceLv"
        android:text="TextView" />
  </LinearLayout>
  <LinearLayout
    android:id="@+id/linearText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
  android:id="@+id/imgFlightLogoLv" />
  </LinearLayout>
  <LinearLayout
  android:id="@+id/linearText2"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
    <TextView
         android:id="@+id/txtTotalDurationLv"
         android:text="TextView" />
    <TextView
      android:id="@+id/txtStopCountLv"
      android:text="TextView" />
  </LinearLayout>
  <LinearLayout
android:id="@+id/linearText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
    <TextView
         android:id="@+id/txtOrgLv"
        android:text="TextView" />
  </LinearLayout>
</LinearLayout>

但是当我使用以下代码加载此文件时:

view = context.LayoutInflater.Inflate(Resource.Layout.CustomizeSearchResult, parent, false) as LinearLayout;

抛出RuntimeException。我想我的布局有问题,但我找不到。因为当我加载另一个XML文件代替它时,没有显示错误并且它成功运行。

2 个答案:

答案 0 :(得分:1)

您忘了为TextViews和ImageView指定layout_height和layout_width

答案 1 :(得分:1)

此处您未将heightweight设置为ImageViewTextView

如果您为UI元素提供了适当的height and weight,则可以看到图形布局。

如果要以编程方式为UI元素设置高度和重量,可以使用java设置高度和重量。您无需担心XML布局中给出的尺寸。

我确信这些身高和体重将在运行时时更改。

像这样更改你的xml

<?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/widget28"
   android:layout_width="fill_parent"
   android:layout_height="80px">
  <LinearLayout
   android:id="@+id/linearText"
   android:layout_width="wrap_content"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   android:layout_marginLeft="10px"
   android:layout_marginTop="10px">
 <TextView
    android:id="@+id/txtAirLineCodeLv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />
<ImageView
    android:id="@+id/StopDetailBtnLv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<TextView
    android:id="@+id/txtPriceLv"
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
  android:id="@+id/linearText1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
 <ImageView
 android:id="@+id/imgFlightLogoLv" 
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
   android:id="@+id/txtTotalDurationLv"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="TextView" />
<TextView
  android:id="@+id/txtStopCountLv"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="TextView" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
     android:id="@+id/txtOrgLv"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
    android:text="TextView" />
</LinearLayout>
</LinearLayout>