【问题标题】:android gridlayout implementation [closed]android gridlayout实现[关闭]
【发布时间】:2013-07-15 13:53:48
【问题描述】:

我正在尝试开发一个新项目。我的客户希望我像当前的 GooglePlay 设计一样进行设计(每个附件的块设计)。这就是为什么我很困惑<android.support.v7.widget.GridLayout> 是否对实现这样的块设计有用。如果没有,请告诉我该怎么做?

【问题讨论】:

    标签: android responsive-design


    【解决方案1】:

    您可能想看看http://developer.android.com/design/building-blocks/grid-lists.html。不完全确定您要做什么,但我希望这会有所帮助。它使用 GridView 而不是 GridLayout。可以在GridView VS GridLayout in Android Apps找到一个很好的帖子@

    编辑:这是我的例子

    注意:大部分内容来自http://developer.android.com/guide/topics/ui/layout/gridview.html。 GridViewExample 中使用的 ImageAdapter 和使用的图片一样直接从那里获取。

    这是我的布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:textColor="@android:color/black"
            android:textStyle="bold"
            android:textSize="50sp"
            android:gravity="center_horizontal"
            android:text="Page Title" />
    
        <!-- Insert some sort of scrolling if desired -->
    
        <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/black"
                android:textColor="@android:color/white"
                android:textSize="25sp"
                android:gravity="center_horizontal"
                android:text="Grid 1 Title" />
    
            <GridView
                android:id="@+id/gridView1"
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:columnWidth="50dp"
                android:numColumns="auto_fit"
                android:verticalSpacing="5dp"
                android:horizontalSpacing="5dp"
                android:stretchMode="columnWidth"
                android:gravity="center" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/black"
                android:textColor="@android:color/white"
                android:textSize="25sp"
                android:gravity="center_horizontal"
                android:text="Grid 2 Title" />
    
            <GridView
                android:id="@+id/gridView2"
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:columnWidth="50dp"
                android:numColumns="auto_fit"
                android:verticalSpacing="5dp"
                android:horizontalSpacing="5dp"
                android:stretchMode="columnWidth"
                android:gravity="center" />         
        </LinearLayout>
    </LinearLayout>
    

    这是我的主要活动:

    package com.example.gridviewdemo;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.GridView;
    import android.widget.Toast;
    
    public class GridViewExample extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.gridview_example);
    
            GridView gridView1 = (GridView) findViewById(R.id.gridView1);
            gridView1.setAdapter(new ImageAdapter(this));
    
            gridView1.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                    Toast.makeText(GridViewExample.this, "1: " + position, Toast.LENGTH_SHORT).show();
                }
            });
    
            GridView gridView2 = (GridView)findViewById(R.id.gridView2);
            gridView2.setAdapter(new ImageAdapter(this));
    
            gridView2.setOnItemClickListener(new OnItemClickListener(){
                public void onItemClick(AdapterView<?> parent, View v, int position, long id){
                    Toast.makeText(GridViewExample.this, "2: " + position, Toast.LENGTH_SHORT).show();
                }
            });
        }
    }
    

    产生: 平板电脑上的布局看起来有点不对劲,但通过一些工作我确信可以修复

    【讨论】:

    • 我已经查过了,但还没有实现它的想法。
    • 如果你的目标是让它看起来像屏幕截图,难道不能在 LinearLayout 中使用 GridView 和 TextView 的组合吗?
    • 你能提供更多的例子吗?顺便说一句,1 票赞成。
    • 我会试一试,但可能需要一点时间 - 谢谢
    • 刚刚发布了编辑。我想这就是你要找的。您可以在 GridView 中垂直滚动并单独选择每张图片。
    猜你喜欢
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2012-02-14
    • 2014-05-01
    相关资源
    最近更新 更多