アンドロイド:ScrollViewの問題
-
19-09-2019 - |
質問
ScrollViews に関しては多くの問題がありました。最近、コンテンツが画面サイズを超える LinearView を作成しようとしたため、親要素 ScrollView を使用して新しいレイアウトを作成し、その幅と高さをカスタム値に設定しました(レイアウトはダイアログとして表示される必要があります - 画面全体を埋める必要はありません)。
要素が選択されると、赤い境界線が事前定義された ScrollView LayoutWidth と LayoutHeight の四角形を囲むように表示されますが、これは問題ありません。次に、LinearView 内に配置し、LayoutWidth と LayoutHeight の値を fill_parent に設定しました。
次に、LinearLayout に要素を追加し始めると、親の ScrollView 全体ではなく、挿入された要素が枠線 (赤い線) で囲まれました。
したがって、LinearLayout (ScrollView の子) のコンテンツが親 ScrollView のサイズを超えると、スクロールは表示されず、下部の要素は単に非表示になります。
ともかく..その場合、XML コンテンツが広すぎてここに質問を投稿できませんでしたが、より単純な例でも同じ問題が発生しています。
レイアウトの次の部分は、スクロール可能な EditText になるように意図されています (ユーザー入力がウィジェットの主サイズを超える場合に備えて)。EditText の高さを 120px に設定したかったので、親の ScrollView の高さを 120px に、子の EditText を fill_parent に設定しました。この場合も、EditText は ScrollView 領域全体を埋めるのではなく、1 行を埋めます。
<ScrollView android:layout_height="120px" android:layout_width="fill_parent">
<EditText android:id="@+id/txtContent" android:layout_height="fill_parent" android:layout_width="fill_parent" android:text="TestContent">
</EditText>
</ScrollView>
EditText が親コントロールを埋め、ユーザーの入力がコントロールのサイズを超えた場合にスクロールが表示されるように、上記のコンテンツの形状を変更する方法を知っている人はいますか?
ありがとう!
編集:
以下はレイアウトのスクリーンショットです
死んだImageShackリンクを削除しました
死んだImageShackリンクを削除しました
解決
あなたのEditTextはwrap_content
の高さを持っている必要があります。 fill_parent
はScrollView
では意味がありません。あなたはそれがコンテンツだときEditText
があなたのScrollView
を記入したい場合はScrollView
よりも小さい、android:fillViewport="true"
にScrollView
を使用します。
他のヒント
はい、ロマンが言ったように、スクロールビューには次のコンボが必要です。
- スクロールビュー用
android:fillViewport="true"
- ScrollView の子の場合
android:layout_height="wrap_content"