Android 更改选定状态下的视图高度

Android 更改选定状态下的视图高度,android,android-layout,Android,Android Layout,我是Android新手,所以这个问题可能很愚蠢,但是,是否可以通过选择器更改视图上的布局高度?我正在尝试制作一个定制的TabHost/TabWidget,在这里我必须根据它们的选择状态更改一些视图。这就是我想要实现的目标: <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_selected="true" android:height="10

我是Android新手,所以这个问题可能很愚蠢,但是,是否可以通过选择器更改视图上的布局高度?我正在尝试制作一个定制的TabHost/TabWidget,在这里我必须根据它们的选择状态更改一些视图。这就是我想要实现的目标:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_selected="true" android:height="10dp" />
    <item android:height="5dp" />
</selector>
然后我尝试将此选择器附加到视图中,如下所示:

<View android:layout_height="@drawable/tab_lineheight_selector" ... />
我显然做错了什么,因为我的应用程序一直在崩溃。甚至可能吗?

根据开发者文档:

android:布局和高度

指定视图的基本高度。这是必需的属性 用于包含布局管理器内的任何视图。它的价值可能是 尺寸,例如恒定高度的12倾角或 特殊常数。可以是一个尺寸值,它是一个浮点 附加单位的数字,如14.5sp。可用单位为:px 像素,dp密度无关像素,sp缩放像素基于 首选字体大小,单位为英寸,毫米。这也可能是 对资源的引用,格式为@[package:]type:name或 表单中的主题属性?[package:][type:]名称包含 此类型的值


所以,从技术上讲,你们想做的是不可能的。

我知道它会崩溃,但我不知道为什么系统不会从选择器中拉出高度。下面是错误报告:二进制XML文件第18行:您必须提供layout_height属性。因此,我必须实现一个侦听器,然后单击fetch the tabWidget并更改它旁边视图的高度?或者有没有其他更优雅的方法来改变视图的高度?以编程的方式进行是最好的选择