2017-11-28 91 views
0

私は次のように宣言しQtQuick.Controls 2.2 ScrollView使用しているとき、私は(コンテンツの唯一の垂直方向のスクロールやフリックを有する)だけ横フリックを無効にしようとしています:私はQML QtQuick.Controls 2.2 ScrollView - 水平フリックを無効にする方法は?

ScrollView { 
    anchors.fill: parent 
    ScrollBar.horizontal.policy: ScrollBar.AlwaysOff 

    Flickable.flickableDirection: Flickable.VerticalFlick 
} 
を試してみた

ScrollView { 
    anchors.fill: parent 
    ScrollBar.horizontal.policy: ScrollBar.AlwaysOff 
} 

でも、Androidアプリは黙ってクラッシュしています。

水平フリックとスクロールのみを無効にするにはどうすればよいですか?

答えて

0

ScrollView::contentWidthと指定してください。

このプロパティは、スクロール可能なコンテンツの幅を保持します。

ScrollView内で1つのアイテムしか使用されていない場合、コンテンツサイズは、含まれている アイテムの暗黙的なサイズに基づいて自動的に計算された です。

ScrollView { 
    contentWidth: -1 
    anchors.fill: parent 

    Text { 
     text: "ABC" 
     font.pixelSize: 512 
    } 
} 
+0

おかげで、私が試してみたが、それはちょうど、縦フリックして(私は垂直方向にスクロールするものを得るために、テキストを10回コピーした)スクロールせずに「ABC」が表示されます。私は、水平方向のフリッキングのみを無効にしたいが、垂直方向のスクロールとフリッキングがあることは明らかだと思った。私は私の質問を明確にすべきです。 – atlascoder

+0

実際、私は代わりにListViewを使用しましたが、私はまだこの方法について不思議です – atlascoder

+0

テキスト要素は単にダミーの例のコンテンツです。内容が十分に高い場合は、垂直スクロールがあります。この例では、要望どおりに水平スクロールを無効にする方法を示します。 ListViewには、垂直方向のListViewにはデフォルトで水平スクロールがありません。水平方向にスクロール可能にするには、コンテンツの幅を明示的にオーバーライドする必要があります。 – jpnurmi

関連する問題