2012-04-12 17 views
0

をリストをスクロールするビューをスクロールを取得することはできません:私はそれを行うには期待していた何アンドロイド - 私はこの非常に基本的なビュー持つ正しく

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     >   

<TextView 
    android:id="@+id/question_label"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Your question: " 
    />  

<TextView 
    android:id="@+id/question"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    />   

     <EditText 
      android:id="@+id/question_text" 
      android:layout_height="wrap_content" 
      android:hint="@string/question_comment_hint" 
      android:inputType="textMultiLine" 
      android:lines="4" 
      android:layout_width="fill_parent"> 
     </EditText> 

<Button 
      android:id="@+id/submit" 
      android:layout_height="wrap_content" 
      android:text="@string/submit" 
      android:onClick="sendFeedback" 
      android:layout_width="fill_parent"> 
     </Button>  



<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" >  

<TextView 
    android:id="@+id/please_wait"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Please wait while the discussion loads..." 
    />  

    <ListView 
    android:id="@android:id/list" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@+id/label" 
     android:textSize="20px" >   
    </ListView>   

    </LinearLayout> 
</ScrollView> 

</LinearLayout> 

は、ユーザーが全体のリストをスクロールできるようにすることですコメント。現時点では、画面上にスペースがあれば、画面はさらにスクロールしません。

コメントのスクロールを有効にするために何を変更する必要がありますか?

ありがとうございます!

+2

これは問題ではありませんが、Androidのスクロールビューではリストビューを使用しないでください。 – coder

+0

@coderどうして?あなたが正しいです。私が何をしようとしても、それは私にとってはうんざりするものです。どのようにこの種のページを整理しますか? – GeekedOut

+0

リストビューは正確には何ですか?すべてのコメント? – coder

答えて

1

リストビューが独自のスクロールを処理するため、スクロールビューを完全に廃止します。こうした同様:今

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    >   

<TextView 
android:id="@+id/question_label"  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="Your question: " 
/>  

<TextView 
android:id="@+id/question"  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="" 
/>   

    <EditText 
     android:id="@+id/question_text" 
     android:layout_height="wrap_content" 
     android:hint="@string/question_comment_hint" 
     android:inputType="textMultiLine" 
     android:lines="4" 
     android:layout_width="fill_parent"> 
    </EditText> 

<Button 
     android:id="@+id/submit" 
     android:layout_height="wrap_content" 
     android:text="@string/submit" 
     android:onClick="sendFeedback" 
     android:layout_width="fill_parent"> 
    </Button>  

<TextView 
android:id="@+id/please_wait"  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="Please wait while the discussion loads..." 
/>  

<ListView 
android:id="@android:id/list" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@+id/label" 
    android:textSize="20px" >   
</ListView>   

違い、IDを持つTextViewに "please_waitは、" リストをスクロールしていないということです。リストをスクロールする必要がある場合は、動的に構築されたTableLayoutをjavaで使用してリストに追加し、TextviewをScrollViewに追加することをお勧めします。 TableLayoutは単独でスクロールしません。その理由は、ScrollView内でListViewを使用するよりも優れたソリューションです。このようにしたい場合は、私に教えてください。私はいくつかのサンプルコードを投稿します。

+0

ありがとうございます - 今これを試してみましょう。私は入れ子になったスクロールビューに問題が生じていることを知っていました:) – GeekedOut

+0

ああ、それは完全に機能しました!ありがとうございました。あなたは間違いなくあなたのスクリーンネームまで住んでいました。ブラボー。 – GeekedOut

1

ListViewにコメントの上にヘッダーを追加しようとしているようです。コーダーが指摘したように、ListViewをScrollViewに配置しないでください。 ListViewに直接ヘッダービューを追加することを検討する必要があります(addHeaderView参照)。

1

基本的には次のようにすることができます。 スクロールビューを削除してtextviewを読み込みます。 は、このようなあなたのリストビューに簡単にアダプタを設定します。

fList = (ListView)findViewById(R.id.lstview); 
fList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[]{"Please wait while the discussion loads..."})); 

あなたのコメントを取得し、リストビューにセットより。

list.setAdapter(adapter); 
1

ScrollView内にListViewを配置しないでください。 ではなくのLinearLayout(垂直)を膨らませる:あなたのコードで

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/question_label" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Your question: " /> 

    <TextView 
     android:id="@+id/question" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="" /> 

    <EditText 
     android:id="@+id/question_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/question_comment_hint" 
     android:inputType="textMultiLine" 
     android:lines="4" > 
    </EditText> 

    <Button 
     android:id="@+id/submit" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:onClick="sendFeedback" 
     android:text="@string/submit" > 
    </Button> 

    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/please_wait" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:text="Please wait while the discussion loads..." /> 

      <LinearLayout 
       android:id="@+id/comments_layout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:visibility="invisible" > 
      </LinearLayout> 
     </LinearLayout> 
    </ScrollView> 

</LinearLayout> 

を:

LinearLayout commentsLayout = (LinearLayout) findViewById(R.id.comments_layout); 

のLinearLayoutを移入するには、次のような

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    for(int i = 0; i < comments.size(); i++){ 

     View childView = inflater.inflate(R.layout.comment_list_item, commentsLayout, false); 

     TextView comment = (TextView) childView.findViewById(R.id.comment); 

     comment.setText("Something"); 

     categoriesLayout.addView(childView, i); 

    } 

何かを、このことができます願っています。

関連する問題