web-dev-qa-db-ja.com

Android:ScrollViewの問題

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のリンクを削除しました

29
Niko Gamulin

EditTextの高さはwrap_contentにする必要があります。 fill_parentは、ScrollViewでは意味がありません。コンテンツがEditTextよりも小さいときにScrollViewScrollViewを埋めるようにするには、ScrollViewAndroid:fillViewport="true"を使用します。

95
Romain Guy

はい、ロメインが言ったように、スクロールビューはコンボに従う必要があります。

  1. scrollView Android:fillViewport="true"
  2. scrollViewの子用Android:layout_height="wrap_content"
9
JonA