java - 元素的 Gridview 对齐

标签 java android gridview

我有一个包含 7 个图像的 grid view,现在当我膨胀它时,我得到它是这样的 enter image description here

在这里你可以看到图像按照正常 View 对齐 但我不想要那样我想要这样

enter image description here

底部图像对齐形成金字塔或三角形类型 我怎样才能在 android 的 gridview 中实现这个???

最佳答案

如果您尝试设置填充,那么您会像这样缩小 View

if(position == 4){
    view.setPadding(50, 0, 0, 0);
}

enter image description here

所以我会建议这样的事情

  1. 在 xml 中创建 2 个 GridView ,这样它们的对齐方式居中

    <TextView
        android:id="@+id/txtControl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceSmall" />
    
    <GridView
        android:id="@+id/gridView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/txtControl"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:numColumns="4" >
    </GridView>
    
    <GridView
        android:id="@+id/gridView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtControl"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:numColumns="3" >
    </GridView>
    

  2. 现在在您的主要 Activity 中为每个创建 2 个字符串值

    公共(public)类 MainActivityWrapped 扩展 Activity {

    static final String[] MOBILE_OS1 = new String[] { 
        "Android", "iOS", "Windows", "Blackberry"};
    static final String[] MOBILE_OS2 = new String[] { 
        "Android", "iOS", "Windows"};
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gridviewlayout);
        GridView gridView1 = (GridView) findViewById(R.id.gridView1);        
        gridView1.setAdapter(new ImageAdapterWrapped(this, MOBILE_OS1,gridView1));
        GridView gridView2 = (GridView) findViewById(R.id.gridView2);        
        gridView2.setAdapter(new ImageAdapterWrapped(this, MOBILE_OS2,gridView1));
    
    }
    

    您可以创建 2 个适配器或控制要重用的第一个适配器

    输出是这样的

enter image description here

enter image description here

关于java - 元素的 Gridview 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22495367/

相关文章:

java - 我的回收器 View 适配器返回 null

java - 使用Tomcat登录localhost后无法登录MySQL服务器

java - 比较两个列表对象

java - 由命令行调用的 Android apkanalyzer 给出 "NoClassDefFoundError"异常

android - Gridview 多行 Textview 被截断

c# - 动态添加链接按钮到 ASP GridView

java - 刷新连接时 Weblogic JMS 客户端线程卡住

java - IndexOutOfBoundsException 而不是结束循环

android - 以度数获取方向

flutter reordable_grid_view 包子白色背景