2013-06-13 2 views
0

시간 내 주셔서 감사합니다.Gridview 내에서 textView 스크롤

ArrayAdapter를 사용하여 gridview 내부에 표시되는 String 목록이 있습니다. 그 문자열 중 일부는 길고 너무 많은 공간을 차지합니다. 각 셀 셀의 높이를 1 줄로 제한하고이 셀을 클릭 할 때 전체 문자열을 읽을 수있게하려고합니다.

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="center_vertical" 
android:minHeight="?android:attr/listPreferredItemHeightSmall" 
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" 
android:paddingStart="?android:attr/listPreferredItemPaddingStart" 
android:scrollHorizontally="true" 
android:singleLine="true" 
android:textAppearance="?android:attr/textAppearanceListItemSmall" 
android:maxLines = "1" 
android:scrollbars = "horizontal"/> 

어떻게 내가 문자열이 가로로 스크롤 할 수 있습니다 : 내 텍스트 뷰 내있는 gridview 안에 여기

<GridView 
    android:id="@+id/songSelectionGrid_grid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@id/songSelectionGrid_button_back" 
    android:columnWidth="90sp" 
    android:horizontalSpacing="10dp" 
    android:numColumns="3" 
    android:verticalSpacing="10dp" /> 

과 :

여기 내 gridview.xml입니까? 보기에서 "setMovementMethod"다음에 gridview에서 onItemClickListener를 시도했지만 TextView 여야하고 캐스팅이 작동하지 않는 것 같습니다.

고마워요!

+0

TextView를 ScrollView로 래핑하는 방법은 무엇입니까? http://stackoverflow.com/questions/6674341/how-to-use-scrollview-in-android를 참조하십시오. –

+0

활동이 시작되면 응용 프로그램이 즉시 종료됩니다. 이유는 모르겠습니다. 어쩌면 GridView는 각 셀 내부에 스크롤 뷰가있는 것을 좋아하지 않을 것입니다. –

+0

그게 문제라고 생각하지 않습니다. GridView는 내부에 뷰가 있지만 정확한 타입이 아니라는 것을 알고 있습니다 ... 로그를 확인하고 그것이 죽어가는 이유를 확인하십시오. –

답변

0

그래, 내가 의도 한대로 작동하도록했습니다 : 여러 앨범 (표지 그림 + 가로로 스크롤 가능한 텍스트)을 표시하는 gridview. 이를 위해, 나는 다음의 getView() 내 자신의 GridAdapter을 만들었습니다

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    // TODO Auto-generated method stub 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View gridView = null; 
    convertView = null; 
    if(convertView == null) 
    { 
     gridView = new View(context); 
     gridView = inflater.inflate(R.layout.gridtextview, null); 
     TextView textView = (TextView) gridView.findViewById(R.id.gridView_text); 

     textView.setText(textArray[position]); 
     Log.i("GridAdapter","textView.getText : 
    } 
    return gridView; 
} 
내가 채우는 오전 GRIDVIEW은 다음과 같이 구성되어

:

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

<ImageView 
    android:id="@+id/gridView_image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:contentDescription="@string/gridTextView_Album" 
    android:src="@drawable/ic_launcher" /> 

<HorizontalScrollView 
    android:id="@+id/gridView_horizontalScroll" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="left" 
    android:clipChildren="true" 
    android:fillViewport="true" 
    android:scrollbars="none" > 

    <RelativeLayout 
     android:id="@+id/gridView_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/gridView_text" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:isScrollContainer="true" 
      android:paddingBottom="10sp" 
      android:singleLine="true" /> 
    </RelativeLayout> 
</HorizontalScrollView> 

내가 아니다 이것이 최선의 방법이라고 확신하지만 작동합니다. 그래도 여전히 마음에 안드로이드 dev에 초보자 야 :)