[解決済み] グリッドビューの高さが削減される
2022-07-22 17:33:53
質問
グリッドビューの中に8つの項目を表示しようとしています。悲しいことに、グリッドビューの高さは常に少なすぎるため、最初の行と2番目の少しの部分しか表示されません。
設定
android:layout_height="300dp"
で動作するようになります。
content
と
fill_parent
はないようです。
私のグリッド表示。
<GridView
android:id="@+id/myId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:horizontalSpacing="2dp"
android:isScrollContainer="false"
android:numColumns="4"
android:stretchMode="columnWidth"
android:verticalSpacing="20dp" />
私のアイテムのリソースです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:minHeight="?android:attr/listPreferredItemHeight" >
<ImageView
android:id="@+id/appItemIcon"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_dialog_info"
android:scaleType="center" />
<TextView
android:id="@+id/appItemText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My long application name"
android:gravity="center_horizontal"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
この問題は、垂直方向のスペースの不足とは関係ないようです。
どうすればよいのでしょうか?
どのように解決するのですか?
あまりに多くの)リサーチの後、私は偶然に Neil Traft の素晴らしい回答 .
彼の作品を
GridView
に適応させるのはとても簡単でした。
ExpandableHeightGridView.javaです。
package com.example;
public class ExpandableHeightGridView extends GridView
{
boolean expanded = false;
public ExpandableHeightGridView(Context context)
{
super(context);
}
public ExpandableHeightGridView(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public ExpandableHeightGridView(Context context, AttributeSet attrs,
int defStyle)
{
super(context, attrs, defStyle);
}
public boolean isExpanded()
{
return expanded;
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
// HACK! TAKE THAT ANDROID!
if (isExpanded())
{
// Calculate entire height by providing a very large height hint.
// View.MEASURED_SIZE_MASK represents the largest height possible.
int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
ViewGroup.LayoutParams params = getLayoutParams();
params.height = getMeasuredHeight();
}
else
{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
public void setExpanded(boolean expanded)
{
this.expanded = expanded;
}
}
このようにレイアウトに組み込んでください。
<com.example.ExpandableHeightGridView
android:id="@+id/myId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:horizontalSpacing="2dp"
android:isScrollContainer="false"
android:numColumns="4"
android:stretchMode="columnWidth"
android:verticalSpacing="20dp" />
最後に、展開するように指示するだけです。
mAppsGrid = (ExpandableHeightGridView) findViewById(R.id.myId);
mAppsGrid.setExpanded(true);
関連
-
[解決済み] Androidで画面の幅と高さを取得する
-
[解決済み] ImageViewの幅と高さをプログラムで設定する?
-
[解決済み】RecyclerViewとGridLayoutManagerを使ったAndroidの簡単なグリッド例(昔のGridViewのようなもの)。
-
[解決済み] FlutterでGridViewのWidgetにCustom heightを設定するには?
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] LayoutParamsの高さを密度に依存しないピクセル数でプログラム的に設定する。
-
[解決済み] WhatsAppでメッセージを送信する
-
[解決済み] Android XMLでテキストに下線を引くには?
-
[解決済み] Android Studio: キーの復元ができない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] DialogFragmentを正しく終了させるには?
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] Android - Snackbar vs Toast - 使い方と違い。
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] AndroidでTextViewの下にアンダーラインを引くには
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
-
[解決済み] AndroidでビューのonClickイベントをその親に渡すには?
-
[解決済み] OnScreen KeyboardのDoneキー押下を検出するAndroid