Android-使listview填充屏幕并列出项目以填充可用空间
因此,基本上我想要完成的是让我的屏幕充满一个listview,其中正好有4个不可变的菜单项。为此,我创建了一个自定义适配器和一个包含使用此适配器的listview的活动 基本上,我希望屏幕上有4个项目,因此每个项目应该占据25%的空间,不包括actionbar区域 我尝试了多种方法,但都不奏效。我可以使每个项目具有相同的大小bah,很容易为每个listview项目分配属性android:layout\u weight=1,并使用android:layout\u height=0dp。但是,listview比屏幕占用更多的空间 下面是我的xml文件现在的样子: item_menu.xml listview项Android-使listview填充屏幕并列出项目以填充可用空间,android,android-layout,android-listview,baseadapter,android-layout-weight,Android,Android Layout,Android Listview,Baseadapter,Android Layout Weight,因此,基本上我想要完成的是让我的屏幕充满一个listview,其中正好有4个不可变的菜单项。为此,我创建了一个自定义适配器和一个包含使用此适配器的listview的活动 基本上,我希望屏幕上有4个项目,因此每个项目应该占据25%的空间,不包括actionbar区域 我尝试了多种方法,但都不奏效。我可以使每个项目具有相同的大小bah,很容易为每个listview项目分配属性android:layout\u weight=1,并使用android:layout\u height=0dp。但是,lis
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="0dp"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="@dimen/activity_vertical_margin"
android:layout_weight="1"
tools:context="com.android.franzoni.atlas.views.CatalogActivity" >
<ImageView
android:id="@+id/imgMenuIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:adjustViewBounds="true"
android:src="@drawable/ic_menu_profile" />
<TextView
android:id="@+id/txtMenuTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="30dp"
android:layout_toRightOf="@+id/imgMenuIcon"
android:text="Menu Title" />
</RelativeLayout>
activity\u menu.xml活动的布局
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
tools:context="com.android.franzoni.atlas.views.MenuActivity" >
<ListView
android:id="@+id/lvMenu"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</LinearLayout>
你们知道怎么做吗?有没有更简单的方法来进行菜单活动?我考虑了listview,因为我将处理滑动和单击事件。现在最好的方法是通过编程方式设置布局,调用一个方法来获取显示大小,然后根据该方法设置布局高度
// Get Screen Size
DisplayMetrics metrics = new DisplayMetrics ();
context.WindowManager.DefaultDisplay.GetMetrics (metrics);
// Set layout based on screen size and qty of items
ll.LayoutParameters.Height = (metrics.HeightPixels - topbarSize) / items.Count ;
如果你有固定的4个项目,你可以尝试将它们添加到线性布局中,这将使事情变得更容易。我不知道我是否得到了它,但我正在为ListView使用线性布局,我的自定义项目使用RelativeLayout这一事实会影响它吗?我需要RelativeLayout,因为该项目将有一个以文本为中心的图像。