0

まず第一に、ListView は独自の垂直スクロールを処理するため、ListView を ScrollView に配置しないでください。

とにかく、私の場合は違います-問題:

ビューがあり、いくつかの情報を表示し、いくつかのアクションもあります。例の画面は次のとおりです。

ここに画像の説明を入力

Email1 は、ListView に配置された ListItem です。ホームページも、2 番目の ListView に配置された ListItem です。(私は ListViews を使用しました。これは、ListItem と ListViews のようにボタンのスタイルを設定できないためです。もう 1 つの理由は、Second Mail: Email2 if exists を表示できるためです) 。

ともかく。問題は、レイアウトが次のようになっていることです。

<ScrollView>(親) --> <LinearLayout>(サブ親) --> <LinearLayout>--> ((電子メール、または「Sonstiges」をホームページと共に記述します) --> <ListView>(ここに ListView があります)。

私が抱えている問題は、ScrollViewを使用すると、2番目の要素が切り取られ、正しく表示されないことです。ここを見てください:

ここに画像の説明を入力

ここで、黄色でマークした場所が ListItem をクリックできる場所です。少しだけ表示され、3 番目の項目は表示されません。

ここに画像の説明を入力

私が試したのは、ScrollView を削除することです。これで 2 番目のアイテムが正常に表示されますが、このビュー全体でスクロールする必要があります。これは、1 つの「ページ」に表示できるよりも多くの情報とアクションがあるためです。

一部の axml (上の画面の「Aktionen」) の残りは、次のようになります。

   <?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 自体の Style は必要ありません。LinearLayout、FrameLayout、RelativeLayout に変更しましたが、常に同じです。

誰かが私を助けてくれることを願っています..

4

2 に答える 2

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 の役割を引き継ぎます。

于 2013-01-21T14:32:03.640 に答える
0

既知の問題のようですので、こちらをご覧ください:Android用の複数のListViewを使用したスクロール、私はこの質問に自分で答えます。

少なくとも、すべての要素にListViewを使用しました。これは機能しますが、すべてのListViewにListItemが1つしかないため、少し不愉快です。

于 2013-01-21T14:29:30.120 に答える