Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-使listview填充屏幕并列出项目以填充可用空间_Android_Android Layout_Android Listview_Baseadapter_Android Layout Weight - Fatal编程技术网

Android-使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

因此,基本上我想要完成的是让我的屏幕充满一个listview,其中正好有4个不可变的菜单项。为此,我创建了一个自定义适配器和一个包含使用此适配器的listview的活动

基本上,我希望屏幕上有4个项目,因此每个项目应该占据25%的空间,不包括actionbar区域

我尝试了多种方法,但都不奏效。我可以使每个项目具有相同的大小bah,很容易为每个listview项目分配属性android:layout\u weight=1,并使用android:layout\u height=0dp。但是,listview比屏幕占用更多的空间

下面是我的xml文件现在的样子:

item_menu.xml listview项

<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,因为该项目将有一个以文本为中心的图像。