2017-07-27 101 views
1

我很抱歉,我是新的android xml部分。我將滾動視圖中的listview設置爲全屏,但其幀仍然很小。如何解決它?我已經將寬度和高度都設置爲「match_parent」。有人可以幫忙嗎?Android ListView內滾動查看不正確

<?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> 

enter image description here

+0

ListView控件觸摸已經默認滾動,那麼爲什麼你添加滾動視圖? – sasikumar

+1

不建議在scrollview中添加'android:fillViewport =「true」'這個屬性爲ScrollView –

+0

listview,但是如果仍然需要這個,那麼你需要根據每個單元格的集合高度強制設置列表高度。檢查https://stackoverflow.com/a/19311197/5110536 –

回答

1

把滾動型裏面的ListView意味着ListView控件不會去充分發揮其高度。取出圍繞ListView的ScrollView,這應該適合你:) ListView本身是可滾動的。

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的