我正在开发一个应用程序,但有一个问题,我无法在DrawerLayout的底部显示ListView,这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px">
<android.webkit.WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView" />
</LinearLayout>
<ListView
android:id="@+id/navList"
android:layout_width="180dp"
android:layout_height="match_parent"
android:choiceMode="singleChoice"
android:layout_gravity="left|start"
android:background="#ffffff" />
</android.support.v4.widget.DrawerLayout>
这是当前的样子:
我尝试将ListView设置在RelativeLayout内,但根本不起作用(例如,虽然以前我自己尝试过,但我使用了当前答案之一)。这就是发生的情况:
我也试图设置ImageView只是为了创建一些空间,但是在两种情况下,代码都破坏了代码。
这就是我想要做的:
有人知道吗?谢谢。
答案 0 :(得分:1)
要使其正常运行,需要进行一些更改:
首先创建一个Fragment类:
public class BlankFragment : Fragment
{
public BlankFragment()
{
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Inflate the layout for this fragment
return inflater.Inflate(Resource.Layout.BlankFragment, container, false);
}
}
第二,用XML中的片段替换ListView:
<fragment
android:name="your package name.BlankFragment"
android:layout_width="180dp"
android:layout_height="match_parent"
android:layout_gravity="left"/>
最后:
将ListView移至片段XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="180dp"
android:layout_height="match_parent"
android:background="#e00808"
tools:context=".BlankFragment">
<!-- TODO: Update blank fragment layout -->
<ListView
android:id="@+id/navList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:choiceMode="singleChoice"
android:layout_alignParentBottom="true"
android:background="#ffffff" />
</RelativeLayout>
此外,您需要将android:layout_height="match_parent"
更改为android:layout_height="wrap_content"
。然后结果将低于预期。
我在Xamarin论坛上得到了robbit的大力支持:
您可以检查他的答案!谢谢robbit!
答案 1 :(得分:0)
您应该添加LinearLayout
作为DrawerLayout
的子元素,其宽度和高度为match_parent
。然后将您的ListView
放在该LinearLayout
的底部。像下面这样。我不知道您想要的布局多么精确,但是下面的代码将列表视图放在LinearLayout
<?xml
version="1.0"encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.9"
android:minHeight="25px"
android:minWidth="25px"
android:orientation="vertical">
<android.webkit.WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<ListView
android:id="@+id/navList"
android:layout_width="180dp"
android:layout_height="0dp"
android:layout_gravity="left|start"
android:layout_weight="0.1"
android:background="#ffffff"
android:choiceMode="singleChoice" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>