我有这个非常基本的观点:
<?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>
我希望用它来允许用户滚动整个评论列表。截至目前,当屏幕上有更多评论然后空格时,屏幕不会向下滚动。
知道我应该更改哪些内容以启用评论的滚动?
谢谢!
答案 0 :(得分:1)
好像你试图在ListView中的注释上面添加一个标题。正如编码器所说,你不应该把一个ListView放在ScrollView中。您应该直接向ListView添加标题视图(请参阅addHeaderView
)。
答案 1 :(得分:1)
我会完全取消滚动视图 - 基于我认为你想要完成的事情,因为listview将自己处理滚动。像这样:
<?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>
现在的区别是,带有“please_wait”的TextView不会随列表一起滚动。如果你需要它来滚动列表,我建议在java中使用动态构建的TableLayout作为列表,然后将它和textview添加到ScrollView。 TableLayout本身不会滚动,这就是为什么它比在ScrollView中使用ListView更好的解决方案。如果你想这样做,请告诉我,我会发布一些示例代码。
答案 2 :(得分:1)
基本上你可以这样做: 摆脱scrollview并加载textview。 像这样在listview中设置一个简单的适配器:
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);
答案 3 :(得分: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);
}
这样的事情,希望这会有所帮助。