2012-03-17 3 views
1

나는 ListActivity 사용법을 배우는 http://www.vogella.de/articles/AndroidListView/article.html 에 대한 자습서를 진행했습니다. 스크롤 목록을 얻으려고하지만 레이아웃 파일에서 scrollview를 사용할 수 없다는 것을 깨닫게되었습니다. 인터넷 검색 후 안드로이드가 이것을 허용하지 않는다는 것을 알았지 만 스크롤을 어떻게 만드는지 설명하는 대답을 찾을 수 없었습니다.Android ListActivity Scrollview 스크롤 목록을 얻는 방법

코드는 다음과 같습니다 :

public class MyListActivityActivity extends ListActivity { 
/** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
    String[] values = new String[] { "Android", "iPhone", "WindowsMobile", 
      "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", 
      "Linux", "OS/2", "iPhone", "WindowsMobile", 
      "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", 
      "Linux", "OS/2" , "iPhone", "WindowsMobile", 
      "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", 
      "Linux", "OS/2" }; 
    /*LayoutInflater factory = getLayoutInflater(); 
    LinearLayout footer = 
      (LinearLayout) factory.inflate(R.layout.main, null); 
    getListView().addFooterView(footer); */ 


    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      R.layout.rowlayout, R.id.label, values); 
    setListAdapter(adapter); 
} 

    protected void onListItemClick(ListView l, View v, int position, long id) { 
    String item = (String) getListAdapter().getItem(position); 
    Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show(); 
} 
} 

// XML 파일 :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" > 

<ImageView 
    android:id="@+id/icon" 
    android:layout_width="22px" 
    android:layout_height="22px" 
    android:layout_marginLeft="4px" 
    android:layout_marginRight="10px" 
    android:layout_marginTop="4px" 
    android:src="@drawable/ic_launcher" > 
</ImageView> 

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

</LinearLayout> 

는 현재, 더 값이 배열에 넣어 작은 목록이 있는지 확인된다 그것은 화면에 맞습니다. 텍스트를 같은 크기로 유지하고 스크롤 할 수있는 긴 목록으로 만들겠습니다.

어딘가에 대해서는 addHooter와 addFooter에 대한 내용을 읽어 보았습니다. 하지만 누구든지 나에게 설명하거나 이것을 구현하는 방법에 대한 자세한 정보가있는 출처로 안내 할 수 있습니까?

나는 모든 의견을 고맙게 생각하고 있습니다. 감사합니다

+0

사용중인 Android 버전은 무엇입니까? 4.0.3에서 나를 자동으로 스크롤. – mpeerman

+0

귀하의 질문에있는 XML에 'ListView'가 포함되지 않았습니다 - 다른 레이아웃을 보여 주시겠습니까? – dldnh

+0

모두에게 감사드립니다. 나는 아무것도 모르는 채로 빠져 나간 것 같아. – railslearner

답변

3

ListView은 스크롤 위젯 자체이기 때문에, 그것은 그 자체 스크롤의 ScrollView

1

추가 ScrollView가 필요하지 않습니다. ListActivity 또는 정확하게 ListView는 추가 항목이 있으면 공간을 사용할 수 있도록 기본적으로 스크롤 할 수 있습니다.

그런데 ScrollViews와 ListViews의 조합을 피해야합니다. 고려해야 할 몇 가지 문제가 있으며 해결 방법으로도 필요하지 않습니다.

-1

목록보기의 내부를 사용할 수 없습니다. 스크롤 레이아웃을 설정하려면이 코드 을 사용할 수 있습니다.이 방법은 유용합니다.

<ScrollView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/lwidget36" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_above="@+id/lwidget35" 
android:background="#000321" 
android:overScrollMode="never" > 

<LinearLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" > 

<ImageView 
android:id="@+id/icon" 
android:layout_width="22px" 
android:layout_height="22px" 
android:layout_marginLeft="4px" 
android:layout_marginRight="10px" 
android:layout_marginTop="4px" 
android:src="@drawable/ic_launcher" > 
</ImageView> 

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

</LinearLayout> 
</ScrollView> 
관련 문제