【发布时间】:2018-02-15 21:25:50
【问题描述】:
我是 android 新手,一直在寻找解决方案,但到目前为止还没有运气。我想创建一个类似于下图的布局。
我想要一个与屏幕大小相同的线性布局。然后再有另一个与屏幕大小相同但在屏幕外的线性布局。然后我可以在两个虚拟“屏幕”之间滚动。
有一篇有趣的文章解释了如何扩展 scrollView 类,这样我就可以得到一个很酷的捕捉效果,所以如果我可以让它工作,我的应用会感觉很像在主屏幕之间滚动。
我已经阅读了有关权重以及 scrollView 的 fillViewport="true" 的信息。恐怕我不明白如何将这些与 HorizontalScrollView 一起使用以使 linearLayouts 填满屏幕。我尝试了各种 fill_parent 和 wrap_content 的组合,但无济于事。
在我看来,只要我在构建子视图(每个“屏幕”中的元素)时考虑到屏幕可变性,此功能不会损害应用程序在具有不同屏幕的设备之间的可移植性。
这是我尝试的 XML 的一个简单示例:
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/HorizontalScrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="true">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/txtTestBox"
>
</EditText>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button 1"
/>
</LinearLayout>
</LinearLayout>
</HorizontalScrollView>
不幸的是,这甚至与我正在寻找的东西不相近。希望这可以做到……
感谢您的任何帮助或建议。
【问题讨论】:
-
我认为放置指向我所指的“快照”代码的链接可能会有所帮助。可以在这里找到:blog.velir.com/index.php/2010/11/17/…
-
我希望实现的功能的另一个示例可以在适用于 android 的 Firefox 移动应用程序中找到。位于页面左侧的选项卡栏(在您滚动之前离开屏幕)似乎以某种方式创建了一个可滚动的表面,该表面具有一个与屏幕确切大小的子视图(它创建一个“屏幕”,即大小的物理电话屏幕,当用户滚动时,他们可以查看他们的选项卡和屏幕)。希望这能说明我的问题。
标签: android