我用RelativeLayout创建了一个窗口,并在其中插入了两个控件;一个是GridView,另一个是WebView。
我将图像绑定到gridview以使用类似菜单,我将在webview中加载一个html页面以供广告使用。
但我对这些控件有疑问。 例如,如果用户垂直滚动gridview,它就会在webview后面消失,但是当我用户滚动gridview时,我期待webview也会滑动gridview。
所以我想知道,我可以将这些控制组合在一起同时行动吗?
我的另一个方向问题是,当我将设备转为横向模式时,webview正在从屏幕上消失。
最后,如果我设置GridView的layout_height属性fill_parent,我看不到WebView,所以我将其设置为wrap_content。但是这次WebView没有在底部对齐,它在GridView之后对齐,屏幕底部和webview之间有空格。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg480480">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="auto_fit"
android:verticalSpacing="45dp"
android:horizontalSpacing="10dp"
android:columnWidth="150dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:layout_marginTop="30dp"
android:scrollbars="none"
android:layout_alignParentTop="true" />
<WebView
android:id="@+id/webView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:gravity="bottom"
android:layout_below="@id/gridview" />
</RelativeLayout>
以下是一些屏幕截图。
答案 0 :(得分:0)
我想主要的问题是GridView和Webview都指定了layout_height="fill_parent"
。我猜你可能不希望GridView填满整个父区域,所以请改用"wrap_content"
。
我不太了解页面所需的布局,但我建议使用LinearLayout来启动和舒适。这实际上取决于网格视图和Web视图应显示的内容以及主要内容的位置。
在下面的示例中,我简单地假设您的网络视图想要占据屏幕的大部分。
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ff0000"
android:numColumns="auto_fit"
android:verticalSpacing="45dp"
android:horizontalSpacing="10dp"
android:columnWidth="150dp"
android:stretchMode="columnWidth"
android:layout_marginTop="30dp"
android:scrollbars="none"
/>
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00ff00"
android:scaleType="centerInside" />
</LinearLayout>
如果假设不正确,那么您可能会反过来指定它(Webview =&gt; wrap_conent
)
答案 1 :(得分:0)
改进WebView布局代码,如下所示:
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/webView1"
android:layout_alignParentTop="true"
android:layout_marginTop="30dp"
android:columnWidth="150dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:scrollbars="none"
android:stretchMode="columnWidth"
android:verticalSpacing="45dp" />
<WebView
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="bottom"
android:scaleType="centerInside" />
仅供参考,android:layout_alignParentBottom="true"
将在屏幕底部显示WebView。并在GridView中包含android:layout_above="@+id/webView1"
。
试试这个布局代码。
答案 2 :(得分:0)
您需要添加
android:layout_above="@+id/webView1"
在你的gridview中
也
android:layout_alignParentBottom="true"
在您的网页浏览中
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg480480"
android:orientation="vertical"
>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="auto_fit"
android:verticalSpacing="45dp"
android:horizontalSpacing="10dp"
android:columnWidth="150dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:layout_above="@+id/webView1"
android:layout_marginTop="30dp"
android:scrollbars="none"
android:layout_alignParentTop="true" />
<WebView
android:id="@+id/webView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@id/gridview" />
</RelativeLayout>