2016-04-15 24 views
0

Androidアプリケーションでvertscrollboxを正しく使用するにはどうすればよいですか?私は1つのtgroupboxと2つのtlistboxをvertscrollboxに入れました。あなたはスクリーンショットで見ることができます。アプリケーションでランドスケープモードを使用し、tgroupboxをタップ&ホールドしたい場合は、スクロールがあまり効果的ではありません。しかし、私がタップし、tlistboxの1つを保持し、スクロールしようとするとスクロールが機能しません。Delphi Seattle 10 Androidスクロールの問題

Here is a Youtube video about this issue

答えて

0

それの内容がどのような向きでSelf.ClientHeightより(背の高い)大きい場合、垂直スクロールボックスにのみスクロールします。これを確認する最も良い方法は、TVertScrollboxにTLayoutを配置することです。次に、その高さをSelf.ClientHeight以上に設定します。それからスクロールするように見えます。

の向きに対応するため、およびFormResizeイベントハンドラを使用して、あまりにもちょうどではなくスクロールを取得するには:

procedure TfrmMain.FormResize(Sender: TObject); 
begin 
    VScrollBox1.Align := TAlignLayout.Client; 
    Layout4.Align := TAlignLayout.Horizontal; // stays centered left-right 
    Layout4.Size.Height := 351 + 200; // space for VK here 
    Layout4.Size.Width := 451; // doesn't matter actually 

あなたは私の垂直スクロールボックスがために十分なスペースを可能にすることを、私のコメントから注意しましょうその下にある仮想キーボード(約200ピクセル)。したがって、VKが起動すると、ユーザーは垂直スクロールボックスにあるレイアウトをスクロールすることができます。最初と最後のTEditコントロールは表示されますが、上と下の余分なスペースが表示されます。キーボードが表示されても、Self.ClientHeightは小さくなりません。注:レイアウトが高すぎると非常に混乱することがあります。上記の351の値はLayout4の最小サイズで、親TEditが一度に表示されるようになっています。

あなたがそれをスクロールするときに、その方向でSelf.ClientHeightが< 551であれば、たとえば、レイアウトがスクロールする表示され、スクロールバーが右側に表示さ(VertScrollBox1.ShowScrollBarsの場合:= TRUE)

+0

はい、 知っている。それはWindowsとAndroidでもうまくいきます。問題は、1つのTLisboxコンポーネントをタップしてスクロールしようとすると、スクロールが機能しなくなることです。しかし、TGroupコンポーネントをタップしてスクロールしようとすると、スクロールが機能しています。とにかく私は解決策を見つけ出し、TListbox上のすべてのコンポーネントとスクロールを完全に実行しました。もう1つの問題は、スクロールして1つの編集フィールドをタップすると、キーボードがすぐに表示され、スクロールがブロックされます。 – Lionking

+0

もちろん、VKはコントロールをブロックします。ここでは複雑なものを実際に扱っているので、動作する最も単純なサンプルを作成し、それをプロジェクトでどのように使用できるかを見ておくとよいでしょう。 Embarcaderoは、スクロールとVKの使い方のサンプルを提供しています。[Mobile Scrollable Form](http://docwiki.embarcadero.com/CodeExamples/XE5/en/FMX.Mobile.ScrollableForm_Sample_%28Delphi%29) – nolaspeaker

関連する問題