我有:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activityLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ColorViewerActivity" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="wrap_content">
// skip it
</TabHost>
<TextView
android:id="@+id/decDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@android:id/tabhost"
android:layout_centerHorizontal="true"
android:gravity="center_vertical|center_horizontal"
android:text="222"
android:textSize="19sp" />
<LinearLayout
android:id="@+id/panelLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="1dip"
android:orientation="vertical" >
</LinearLayout>
<TextView
android:id="@+id/hexDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/decDescription"
android:layout_alignRight="@+id/panelLayout"
android:layout_below="@android:id/tabhost"
android:text="111"
android:textSize="14sp" />
</RelativeLayout>
如果我将最后TextView (id=hexDescription)
置于penult LinearLayout (id=panelLayout)
之前,我会得到例外。来自LogCat:
java.lang.RuntimeException: Unable to start activity ComponentInfo{ com.gmail.leonidandand.colorviewer/com.gmail.leonidandand.colorviewer.ColorViewerActivity}:
java.lang.ClassCastException: android.widget.LinearLayout
可能是什么问题?
抱歉我的英文。
由于
答案 0 :(得分:1)
这样做是因为您指示它应该相对于LinearLayout
定位。因此,您需要在要将其定位到的元素之后声明它。如果你没有宣布
android:layout_alignRight="@+id/panelLayout"
你的十六进制TextView
中的然后无所谓。这是因为当它绘制layout
时,它会看到该属性并且找不到相对于它的id
,因为它尚未绘制view
答案 1 :(得分:1)
尝试重新安排下面的内容
android:layout_alignBottom="@+id/decDescription"
android:layout_alignRight="@+id/panelLayout"
android:layout_below="@android:id/tabhost"
可能会发生错误,因为您将它对齐在decDescription的底部和tabhost下面
答案 2 :(得分:1)
Tabhost要求带有ID的TabWidget。当我使用你的xml布局时,这就是lint警告的。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activityLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ColorViewerActivity" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</TabHost>
<TextView
android:id="@+id/decDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@android:id/tabhost"
android:layout_centerHorizontal="true"
android:gravity="center_vertical|center_horizontal"
android:text="222"
android:textSize="19sp" />
<LinearLayout
android:id="@+id/panelLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="1dip"
android:orientation="vertical" >
</LinearLayout>
<TextView
android:id="@+id/hexDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/decDescription"
android:layout_alignRight="@+id/panelLayout"
android:layout_below="@android:id/tabhost"
android:text="111"
android:textSize="14sp" />
</RelativeLayout>
TabHost有一个tabWidget和一个FrameLayout。
从图形布局中捕获的快照
http://www.androidhive.info/2011/08/android-tab-layout-tutorial/
的工作示例