8

「右から左の言語に使用するために」グリッドビューを右から左に塗りつぶしたいアプリを作成しています。gridViewの重力を右に設定しようとしましたが、機能しませんでした... gridviewのレイアウトは以下のとおりです。

前もって感謝します

<RelativeLayout
    android:id="@+id/grid_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/show_info"
    android:gravity="right" >

    <GridView
        android:id="@+id/channel_grid"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:columnWidth="90dp"
        android:gravity="right"
        android:horizontalSpacing="10dp"
        android:numColumns="auto_fit"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp" >
    </GridView>
</RelativeLayout>
4

6 に答える 6

5

あなたの最善の推測は、GridViewソースからコードをコピーし、右から左に使用するように測定/レイアウトを変更することだと思います。

更新:ビューのレイアウト方向は、APIレベル17(4.2)でのみ導入されました。4.24.1のGridView.javaを比較すると、たとえばメソッドmakeRow()で、4.2以降のlayoutDirectionが考慮されていることがわかります。これで、うまくいくはずです。

android:layoutDirection="rtl"APIレベル17でコードを実行しようとしましたか?

于 2013-08-28T13:07:24.923 に答える
4

GridViewは言語を念頭に置いて設計されたとは思いません。これは、サムネイル画像を配置するための視覚的なコンポーネントです。

この問題は、アダプターを変更して、行ごとの各項目の順序を逆にすることで解決できます。ただし、それを機能させるには、1行あたりのアイテム数をアダプタに通知する必要があります。

その上、最後の行のアイテムが可能な限り少ない場合は、左側を埋めるために空のダミーアイテムを導入する必要があります。

于 2012-07-10T15:22:37.820 に答える
3

あなたはこれを試すことができます。レイアウトファイル内のGridViewに次の属性を持たせる

android:layoutAnimation="@anim/layout_grid_right_to_left"

withcotentsanimを追加するフォルダを作成しますlayout_grid_right_to_left.xml

<gridLayoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
    android:columnDelay="0.5"
    android:directionPriority="row"
    android:direction="right_to_left"
    android:animation="@anim/fade" />

fade.xmlまた、同じanimフォルダにコンテンツを追加します

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
   android:interpolator="@android:anim/accelerate_interpolator"
   android:fromAlpha="0.0" android:toAlpha="1.0"
   android:duration="@android:integer/config_longAnimTime" />

これらは参考用です。ニーズ/要件に合った属性を自由に追加/削除してください。

于 2013-08-29T09:08:41.907 に答える
2

あなたが試すことができます

android:layoutDirection="rtl"

これは通常テキスト用であり、gridViewにどのような影響があるのか​​わかりません。(ref

もう1つ試してみるのは

android:stackFromBottom="true"

ただし、アイテムを上から下および右から左に注文する必要がある場合は機能しません(ref) 。

于 2013-08-22T13:23:40.507 に答える
2

グリッドビューとそのすべてのアイテムに対してXMLでこれを試すことができます。

 android:rotationY="180"

を使用することもできますandroid:layoutDirection="rtl"。それはあなたの問題を解決するかもしれません。

于 2014-09-15T07:06:01.507 に答える
1

これを行うにはばかげた方法がありますが、それは完全に機能します。

グリッドビューとアイテムコンテナ(グリッドビューセルのカスタムビュー)で作成するだけandroid:ScaleX=-1で、レイアウトは右から左に始まります。

この助けを願っています

于 2015-04-27T11:08:08.050 に答える