首先 - 我知道,我不应该将ListView放入ScrollView,因为ListView负责自己的垂直滚动。
无论如何,就我而言,情况有所不同 - 问题:
我有一个视图,我在其中显示一些信息,还有一些动作。 这是一个示例屏幕:
Email1是放置在ListView中的ListItem。 Homepage也是放在第二个ListView中的ListItem。 (我使用了ListViews,因为我无法使用ListItem和ListViews这样的样式按钮 - 另一个原因是,我可以显示第二个邮件:Email2如果存在)
反正。现在的问题是,布局看起来像这样:
<ScrollView>
(家长) - &gt; <LinearLayout>
(SubParent) - &gt; <LinearLayout>
- &gt; ((它描述了电子邮件,或#34; Sonstiges&#34;,与主页) - &gt; <ListView>
(这里是ListView)..
我遇到的问题是,当使用ScrollView时,它会切掉第二个元素,我看不清楚,看看这里:
在这里,我用黄色标记它,是我可以点击ListItem的地方..它只显示一点点,第三项甚至不能显示:
我尝试删除ScrollView。那么现在它向我显示第二个项目很好,但在整个视图中,我需要滚动,因为有更多的信息和动作,而不是我在一个&#34; Page&#34;。
一些axml(它的&#34; Aktionen&#34;,来自上部屏幕)其余的看起来完全像这样:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
style="@style/ScrollView"
xmlns:local="http://schemas.android.com/apk/res/INMobileCRM4Android.INMobileCRM4Android"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout style="@style/LinearLayout">
<LinearLayout style="@style/LinearLayoutSmall">
<TextView
style="@style/TextAktionen"
android:text="Aktionen" />
<Mvx.MvxBindableListView
local:MvxBind="{'ItemsSource':{'Path':'ActionsList'},'ItemClick':{'Path':'ActionCommand'}}"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
local:MvxItemTemplate="@layout/addressshowdataactionlistitem"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
风格:
<style name="LinearLayout" parent="android:Theme">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:orientation">vertical</item>
<item name="android:background">@string/backgroundPicture</item>
</style>
<style name="LinearLayoutSmall" parent="android:Theme">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:orientation">vertical</item>
</style>
<style name="ScrollView" parent="android:Theme">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
</style>
ListItem的样式本身并不是必需的。 我把它改为LinearLayout,FrameLayout,RelativeLayout,它总是一样的。
我希望有人可以帮助我..
答案 0 :(得分:1)
我设法修复了我的TimePicker问题,这可能对你和你的ListViews有效。基本上他们都想要相同的东西,控制你的触摸事件,所以你必须覆盖你的Java文件。
我是通过在单独的Java文件中创建自定义TimePicker,然后在XML中将其作为视图调用来实现此目的。
也许您可以创建自定义ListView,然后在文件末尾调用以下代码:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
// Stop ScrollView from getting involved once you interact with the View
if (ev.getActionMasked() == MotionEvent.ACTION_DOWN)
{
ViewParent p = getParent();
if (p != null)
p.requestDisallowInterceptTouchEvent(true);
}
return false;
}
在执行第一次触摸事件后,View将获得焦点,并将接管Scroll职责。
答案 1 :(得分:0)
因为它似乎是一个已知问题,请看这里:Scrolling with Multiple ListViews for Android,我将自己回答这个问题。
至少我为每个Element使用了ListView。这是有效的,但它有点unnicely因为每个ListView现在只有一个ListItem。