【问题标题】:Issue creating a ListView menu in Xamarin/Android在 Xamarin/Android 中创建 ListView 菜单的问题
【发布时间】:2017-11-13 02:48:25
【问题描述】:

我无法在 Xamarin 中创建简单的链接菜单。所需的布局是图像标题、链接列表和底部用于关闭菜单的按钮。我正在使用 ListView 来显示链接。

我的布局在 Visual Studio 设计器中按需要显示,但在模拟器或实际 Android 设备上运行时,ListView 占据整个屏幕并且页眉和页脚不可见。我已经尝试了所有我能想到的方法,包括几种不同的布局,并且总是得到相同的结果。

我的 XAML 在下面。帮忙?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout1">
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/topLayout">
    <Toolbar
        android:minHeight="?android:attr/actionBarSize"
        android:background="?android:attr/colorPrimary"
        android:minWidth="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/toolbar1">
        <ImageView
            android:src="@drawable/logo1"
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="1.0dp"
            android:layout_gravity="center" />
    </Toolbar>
</LinearLayout>
<ListView
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:id="@+id/android.r."
    android:background="#ffffffff" />
<LinearLayout
    android:orientation="vertical"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayout2">
    <Toolbar
        android:minHeight="?android:attr/actionBarSize"
        android:background="#ffff8902"
        android:minWidth="25px"
        android:layout_width="match_parent"
        android:layout_height="35dp"
        android:id="@+id/toolbar3"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="0.0dp">
        <Button
            android:text="^"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/menuCloser"
            android:layout_gravity="center"
            android:layout_marginLeft="0.0dp"
            android:layout_marginRight="0.0dp"
            android:textSize="40dp"
            android:background="?android:attr/selectableItemBackground"
            android:ems="1"
            android:onClick="OnCloseMenu"
            android:shadowColor="@android:color/transparent"
            android:textColor="#ffffffff" />
    </Toolbar>
</LinearLayout>
</LinearLayout>

【问题讨论】:

    标签: android listview xamarin


    【解决方案1】:

    如果您的列表中有更多项目,则必须滚动到底部才能看到页脚。 Visual Studio 设计器将向您显示包含较少项目的示例列表,以便您可以看到页眉和页脚。如果您希望将页脚放置在固定位置,即您不想滚动,请使用相对布局。

    【讨论】:

    • 这是有道理的,但是如果是这种情况,我希望顶部工具栏和图像会显示,但事实并非如此。我还尝试在根本没有向 ListView 添加任何项目的情况下运行它,并得到了相同的行为。无论我做什么,整个屏幕都被 ListView 填满。
    【解决方案2】:

    只需将您的列表视图标签替换为

    <ListView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:id="@+id/android.r."
            android:background="#ffffffff" />
    

    1> 问题出在您的 android:layout_height="0dp" 中,如果您使用重量,则应该是 0dp

    2> 我的建议是使用android的RecyclerView,因为ListView会遇到很多不一致的情况

    3> 你的代码需要清理,因为我认为你是 android 新手

    所以建议我只是删除了一些未使用的属性,

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/linearLayout1">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/topLayout">
            <Toolbar
                android:background="?android:attr/colorPrimary"
                android:layout_width="match_parent"
                android:layout_height="?android:attr/actionBarSize"
                android:id="@+id/toolbar1">
                <ImageView
                    android:src="@drawable/ic_back"
                    android:id="@+id/imageView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    />
            </Toolbar>
        </LinearLayout>
        <ListView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:id="@+id/android.r."
            android:background="#ffffffff" />
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/linearLayout2">
            <Toolbar
                android:minHeight="?android:attr/actionBarSize"
                android:background="#ffff8902"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/toolbar3"
                >
                <Button
                    android:text="^"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/menuCloser"
                    android:layout_gravity="center"
                    android:layout_marginLeft="0.0dp"
                    android:layout_marginRight="0.0dp"
                    android:textSize="40dp"
                    android:background="?android:attr/selectableItemBackground"
                    android:ems="1"
                    android:onClick="OnCloseMenu"
                    android:shadowColor="@android:color/transparent"
                    android:textColor="#ffffffff" />
            </Toolbar>
        </LinearLayout>
    </LinearLayout>
    

    【讨论】:

    • 感谢您的建议,但不幸的是,这并没有解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2017-12-24
    • 2020-02-07
    相关资源
    最近更新 更多