对不起,我是android xml部分的新手。我正在将我的listview设置为滚动视图内部全屏但其框架仍然很小。怎么解决?我已经将宽度和高度都设置为" match_parent"。有人可以帮忙吗?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.stacktips.speechtotext.MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/row" >
</ListView>
</ScrollView>
<LinearLayout
android:id="@+id/btnSpeakContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#f5f5f5"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="20dp">
<ImageButton
android:id="@+id/btnSpeak"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:padding="16dp"
android:scaleType="fitCenter"
android:src="@mipmap/ic_microphone_2" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btnSpeak"
android:layout_margin="10dp"
android:text="@string/hint" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:1)
将ListView放在ScrollView中意味着ListView不会达到其全高。取出ListView周围的ScrollView,这应该适合你:) ListView本身是可滚动的。
答案 1 :(得分:0)
默认情况下,您不应在vertical scrollview
内添加vertical scrollview
,因为父级会消耗所有触摸事件。
但是你可以使用这段代码来解决这个问题
ListView lv = (ListView)findViewById(R.id.myListView);
lv.setOnTouchListener(new ListView.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
// Handle ListView touch events.
v.onTouchEvent(event);
return true;
}
});
这个tutorial是关于android中的触摸的超酷话题