Android 如何解决“问题”;“隐藏的”;小屏幕上列表项的布局(QVGA/HVGA)
我对Android 如何解决“问题”;“隐藏的”;小屏幕上列表项的布局(QVGA/HVGA),android,android-layout,Android,Android Layout,我对ListView定义如下(Eclipse Android SDK中图形视图的屏幕截图): 问题是,在这一行中,只有在小屏幕上,最后一个布局元素(星形)是“隐藏的”。在更大的屏幕上,相同的布局XML看起来/工作起来与预期的一样(和在IDE中看到的一样) 这种意外的布局行为发生在设备和模拟器上以及所有版本上(API 8-19) 我注意到(原始)线性布局上的错误: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmln
ListView
定义如下(Eclipse Android SDK中图形视图的屏幕截图):
问题是,在这一行中,只有在小屏幕上,最后一个布局元素(星形)是“隐藏的”。在更大的屏幕上,相同的布局XML看起来/工作起来与预期的一样(和在IDE中看到的一样)
这种意外的布局行为发生在设备和模拟器上以及所有版本上(API 8-19)
我注意到(原始)线性布局上的错误
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="72dp"
android:background="@color/transparent" >
<LinearLayout
android:id="@+id/list_row_checkBox_container"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:clickable="true"
android:gravity="center" >
<CheckBox
android:id="@+id/list_row_checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />
</LinearLayout>
<LinearLayout
android:id="@+id/list_row_text"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/list_row_txtTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Title"
android:textSize="30sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/list_row_txtExtra1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="First" />
<TextView
android:id="@+id/list_row_txtExtra2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="Second" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="48dp"
android:layout_height="fill_parent"
android:gravity="center" >
<!-- android:background="@color/green" -->
<ImageButton
android:id="@+id/list_row_select_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
android:clickable="true"
android:src="@drawable/btn_star_holo_light_off" />
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="72dp"
android:background="@color/transparent" >
<LinearLayout
android:id="@+id/list_row_checkBox_container"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:clickable="true"
android:gravity="center" >
<CheckBox
android:id="@+id/list_row_checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />
</LinearLayout>
<LinearLayout
android:id="@+id/list_row_text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_marginRight="48dp"
android:layout_toRightOf="@+id/list_row_checkBox_container"
android:orientation="vertical" >
<TextView
android:id="@+id/list_row_txtTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Title"
android:textSize="30sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/list_row_txtExtra1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="First" />
<TextView
android:id="@+id/list_row_txtExtra2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="Second" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:gravity="center" >
<ImageButton
android:id="@+id/list_row_select_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
android:clickable="true"
android:src="@drawable/btn_star_holo_light_off" />
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="72dp"
android:background="@color/transparent" >
<LinearLayout
android:id="@+id/list_row_checkBox_container"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_gravity="top|left"
android:clickable="true"
android:gravity="center" >
<CheckBox
android:id="@+id/list_row_checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />
</LinearLayout>
<LinearLayout
android:id="@+id/list_row_text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="top|left"
android:layout_marginLeft="48dp"
android:layout_marginRight="48dp"
android:orientation="vertical" >
<TextView
android:id="@+id/list_row_txtTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Title"
android:textSize="30sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/list_row_txtExtra1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="First" />
<TextView
android:id="@+id/list_row_txtExtra2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="Second" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_gravity="top|right"
android:gravity="center" >
<ImageButton
android:id="@+id/list_row_select_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
android:clickable="true"
android:src="@drawable/btn_star_holo_light_off" />
</LinearLayout>
</FrameLayout>
结果:
最后,我尝试了FrameLayout
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="72dp"
android:background="@color/transparent" >
<LinearLayout
android:id="@+id/list_row_checkBox_container"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:clickable="true"
android:gravity="center" >
<CheckBox
android:id="@+id/list_row_checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />
</LinearLayout>
<LinearLayout
android:id="@+id/list_row_text"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/list_row_txtTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Title"
android:textSize="30sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/list_row_txtExtra1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="First" />
<TextView
android:id="@+id/list_row_txtExtra2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="Second" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="48dp"
android:layout_height="fill_parent"
android:gravity="center" >
<!-- android:background="@color/green" -->
<ImageButton
android:id="@+id/list_row_select_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
android:clickable="true"
android:src="@drawable/btn_star_holo_light_off" />
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="72dp"
android:background="@color/transparent" >
<LinearLayout
android:id="@+id/list_row_checkBox_container"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:clickable="true"
android:gravity="center" >
<CheckBox
android:id="@+id/list_row_checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />
</LinearLayout>
<LinearLayout
android:id="@+id/list_row_text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_marginRight="48dp"
android:layout_toRightOf="@+id/list_row_checkBox_container"
android:orientation="vertical" >
<TextView
android:id="@+id/list_row_txtTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Title"
android:textSize="30sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/list_row_txtExtra1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="First" />
<TextView
android:id="@+id/list_row_txtExtra2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="Second" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:gravity="center" >
<ImageButton
android:id="@+id/list_row_select_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
android:clickable="true"
android:src="@drawable/btn_star_holo_light_off" />
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="72dp"
android:background="@color/transparent" >
<LinearLayout
android:id="@+id/list_row_checkBox_container"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_gravity="top|left"
android:clickable="true"
android:gravity="center" >
<CheckBox
android:id="@+id/list_row_checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />
</LinearLayout>
<LinearLayout
android:id="@+id/list_row_text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="top|left"
android:layout_marginLeft="48dp"
android:layout_marginRight="48dp"
android:orientation="vertical" >
<TextView
android:id="@+id/list_row_txtTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Title"
android:textSize="30sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/list_row_txtExtra1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="First" />
<TextView
android:id="@+id/list_row_txtExtra2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="12dp"
android:text="Second" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_gravity="top|right"
android:gravity="center" >
<ImageButton
android:id="@+id/list_row_select_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
android:clickable="true"
android:src="@drawable/btn_star_holo_light_off" />
</LinearLayout>
</FrameLayout>
结果:
可以看出,没有任何帮助,我有点“困惑”
想知道如何解决这个问题吗?首先检查您在创建布局时选择的设备是否应该位于图形布局xml的顶部栏上。默认布局文件夹适用于屏幕为4-7英寸的设备。然而,布局故障也发生在设备DPI的基础上。因此,您必须创建多个布局文件夹以支持不同的布局及其横向文件夹 您不必创建这么多布局。这是因为您必须为具有不同屏幕大小和dpi的不同设备创建不同的布局。这就是为什么这位明星要退出银幕
转到此链接并阅读。解决方案是为
btn\u star\u holo\u light\u off
图像(只有可绘制的xhdpi
图像)向项目添加可绘制的mdpi
资源