0

お時間をいただきありがとうございます。

ArrayAdapter を使用してグリッドビュー内に表示される文字列のリストがあります。これらのストリングの一部は長く、スペースをとりすぎます。各グリッド セルの高さを 1 行に制限し、このセルをクリックしたときに文字列全体を読み取れるようにしたいと考えています。

ここに私の gridview.xml があります:

    <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" />

ここに私のグリッドビュー内のテキストビューがあります:

<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"/>

文字列を水平にスクロールするにはどうすればよいですか? グリッドビューで onItemClickListener を試した後、ビューで「setMovementMethod」を試しましたが、TextView である必要があり、キャストが機能していないようです

ありがとう !

4

1 に答える 1

0

わかりましたので、意図したとおりに機能させることができました: 複数のアルバムを表示するグリッドビュー (カバー画像 + 水平方向にスクロール可能なテキスト)。そのために、次の 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>

これが最善の方法かどうかはわかりませんが、うまくいきます。それでも、私はまだAndroid開発の初心者であることを覚えておいてください:)

于 2013-06-17T08:54:09.070 に答える