带有ImageButtons和TextViews的Android Gridview。 gridview中的项目没有排队

时间:2016-03-02 18:31:32

标签: android gridview textview android-imagebutton

我有一个带有图像按钮和Textview的GridView的视图,但是当多行的文本视图没有排列时,如下所示。我可以将TextView设置为

android:singleLine="true"

但我不愿意。

enter image description here

GridView代码:

    <GridView
        android:id="@+id/gridview"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:columnWidth="90dp"
        android:numColumns="auto_fit"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:stretchMode="columnWidth"
        android:gravity="center"
        android:layout_weight="1" />

由BaseAdapter调用的ImageButton和TextView的模板:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:id="@+id/MainMenuImageButton"
        android:layout_alignParentRight="true"
        android:scaleType="fitCenter" />
    <TextView
        android:id="@+id/MainMenuTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="trebuchet"
        android:layout_marginLeft="10dp"
        android:textColor="@android:color/black"
        android:singleLine="true"
        android:textSize="15sp"
        android:textStyle="bold" />
</LinearLayout>

如果您有任何建议,我会很感激。谢谢。

2 个答案:

答案 0 :(得分:1)

解决方案如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:id="@+id/MainMenuImageButton"
        android:layout_alignParentRight="true"
        android:scaleType="fitCenter" />
    <TextView
        android:id="@+id/MainMenuTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="trebuchet"
        android:layout_marginLeft="10dp"
        android:textColor="@android:color/black"
        android:lines="2"
        android:textSize="15sp"
        android:textStyle="bold" />
</LinearLayout>

答案 1 :(得分:0)

只需将textviews布局宽度设置为包装内容,将重力设置为中心,并设置android:singleLine =“false”。您可以按预期获得。请尝试以下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="10dp"
    android:layout_gravity="center"
    android:layout_marginBottom="10dp"
    android:id="@+id/MainMenuImageButton"
    android:layout_alignParentRight="true"
    android:scaleType="fitCenter" />
<TextView
    android:id="@+id/MainMenuTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="trebuchet"
    android:layout_marginLeft="10dp"
    android:gravity="center"
    android:textColor="@android:color/black"
    android:singleLine="false"
    android:textSize="15sp"
    android:textStyle="bold" />