标签: android-gridlayout

Android Grid Layout Manager 列跨度

我需要为 Android TV 定制键盘,如下图所示。该布局有一个带有网格布局管理器的回收器视图,用于自定义行和列。

但是当我运行应用程序时,布局没有在最后一行显示正确的按钮宽度。“空格”按钮的跨度应为 4,“Shift”按钮 2 和“零”按钮 3。

android android-gridlayout android-recyclerview

2
推荐指数
1
解决办法
1250
查看次数

网格布局不起作用

我创建了一个GridLayoutand CardView,但卡片视图不起作用我使用的是 Android Studio 3.0.1

当我查看设计视图时,一切看起来都是正确的。但是当我查看跑步时,我没有看到上面的卡片。仅在其上显示文本和背景。请帮助我,当我在 android 版本 5.1 的设备上启动它时,我遇到了布局问题Lolipop。请协助,它不显示卡片视图

安卓版 5.1 棒棒糖

图片1

设计视图

图像2

构建摇篮

图像3

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/backpic"
    android:weightSum="10"
    tools:context="myapplication.cardview.MainActivity">

    <RelativeLayout
        android:layout_weight="2"
        android:layout_width="match_parent"
        android:layout_height="0dp">

        <TextView
            android:id="@+id/textGrid"
            android:text="Card View"
            android:textSize="34sp"
            android:textColor="@android:color/black"
            android:textStyle="bold"
            android:layout_centerInParent="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </RelativeLayout>



    <GridLayout
        android:columnCount="2"
        android:rowCount="3"
        android:alignmentMode="alignMargins"
        android:columnOrderPreserved="false"
        android:layout_weight="8"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:padding="14dp">

        <!-- Row 1 -->
        <!-- Column 1 -->
        <android.support.v7.widget.CardView
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:layout_marginBottom="16dp"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            app:cardElevation="8dp"
            app:cardCornerRadius="8dp"
            >

            <LinearLayout
                android:layout_gravity="center_horizontal|center_vertical"
                android:layout_margin="16dp" …
Run Code Online (Sandbox Code Playgroud)

android grid-layout android-layout android-gridlayout android-cardview

2
推荐指数
1
解决办法
7210
查看次数

将 2 列放入所有屏幕的单行水平回收视图中

我有一个父级Horizontal Recycleview,其中包含十二个Vertical Recycleviews。我想每页仅显示两列,仅在一个水平行上。我用GridLayoutManager

GridLayoutManager layoutManager = new GridLayoutManager(this,1);
            layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)

增加跨度会2创建我不想要的两行。

我还尝试layout:width在 xml 中固定值dpor ,sp这会导致不同屏幕尺寸上的列数不同。

每个块的xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/view_table_view_game_block_constraint_layout"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:background="@drawable/shape_round_top"
    android:layout_marginTop="8dp">

    <TextView
        android:id="@+id/textView_table_view_odds_block_time"
        android:layout_width="0dp"
        android:layout_height="50sp"
        android:gravity="center_vertical"
        android:textColor="@color/colorFontWhite"
        android:textSize="@dimen/font_size"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button_table_view_odds_block_hometeam"
        android:layout_width="0dp"
        android:layout_height="50sp"
        android:layout_marginTop="4dp"
        android:textAlignment="textStart"
        android:background="@android:color/transparent"
        android:textColor="@color/colorFontWhite"
        android:textSize="@dimen/font_size"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView_table_view_odds_block_time" />



    <Button
        android:id="@+id/button_table_view_odds_block_drawable"
        android:layout_width="0dp"
        android:layout_height="50sp"
        android:layout_marginTop="4dp"
        android:background="@android:color/transparent"
        android:textAlignment="textStart"
        android:textColor="@color/colorFontWhite"
        android:textSize="@dimen/font_size"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button_table_view_odds_block_hometeam" />

    <Button …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-gridlayout android-recyclerview

1
推荐指数
1
解决办法
6286
查看次数

以编程方式设置 ColumnSpan 和 ColumnWeight

我一直在尝试将视图添加到 gridLayout,我已经完成了,但它们没有按照应有的方式调整到列,我曾尝试使用在 XML 中显示良好但没有成功的相同属性来填充视图。

现在,我正在尝试以编程方式创建视图,但它不起作用,我该如何实现我想要的?

相关代码:

这是我的 GridLayout

<android.support.v7.widget.GridLayout
            android:id="@+id/grd_team_a"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="12dp"
            android:horizontalSpacing="1dp"
            app:columnCount="5"
            app:orientation="horizontal">

            <TextView
                android:id="@+id/txtPlayersNameTi"
                android:text="Jugadores"
                android:textSize="14sp"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                app:layout_columnWeight="2"
                app:layout_columnSpan="2"
                android:textStyle="bold"/>
            <TextView
                android:text="Goles"
                android:gravity="center_horizontal"
                android:paddingRight="5dp"
                android:textSize="14sp"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                app:layout_columnWeight="1"
                app:layout_columnSpan="1"
                android:textStyle="bold"/>
            <ImageView
                android:src="@drawable/ic_yellow_card_match"
                android:gravity="center_horizontal"
                android:textSize="14sp"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                app:layout_columnWeight="1"
                app:layout_columnSpan="1"
                android:textStyle="bold"/>
            <ImageView
                android:src="@drawable/ic_red_card_match"
                android:gravity="center_horizontal"
                android:paddingTop="5dp"
                android:paddingBottom="5dp"
                app:layout_columnWeight="1"
                app:layout_columnSpan="1"
                android:textStyle="bold"/>
        </android.support.v7.widget.GridLayout>
Run Code Online (Sandbox Code Playgroud)

这是它在 xml 预览中的样子:

在此处输入图片说明

这就是它应该如何处理数据:

在此处输入图片说明

但是,在添加此代码后:

int i = 2;
            loading=false;
            GridLayout.Spec col2 = GridLayout.spec(2);
            GridLayout.Spec col3 = GridLayout.spec(3);
            GridLayout.Spec col4 = GridLayout.spec(4);
            GridLayout.Spec colspan2 = GridLayout.spec(0, 1); …
Run Code Online (Sandbox Code Playgroud)

android dynamic grid-layout android-gridlayout

0
推荐指数
1
解决办法
6474
查看次数

如何在Android中使用网格布局将屏幕划分为4个相等的部分?

我试图将屏幕划分为4个相等的部分,但是遇到了问题.

   <GridLayout
       android:rowCount="2"
       android:columnCount="2"
       android:layout_width="match_parent"
       android:layout_height="match_parent">


       <View
           android:background="@drawable/rectangle"
           android:layout_column="0"
           android:layout_row="0"
           />


       <View
           android:background="@drawable/rectangle"
           android:layout_column="1"
           android:layout_row="0"
           />

       <View
           android:background="@drawable/rectangle"
           android:layout_column="0"
           android:layout_row="1"
           />

          <View
           android:background="@drawable/rectangle"
           android:layout_column="1"
           android:layout_row="1"
           />
Run Code Online (Sandbox Code Playgroud)

而rectangle.xml文件是

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape">
    <stroke android:width="2dp" android:color="#ff207d94" />
    <padding android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp" />
    <corners android:radius="20dp" />
    <solid android:color="#ffffffff" />
</shape>
Run Code Online (Sandbox Code Playgroud)

现在矩形正在屏幕之外,第一列填满整个屏幕.

java android view android-gridlayout

0
推荐指数
1
解决办法
3434
查看次数

Android - Gridlayout android.support.v7.widget.GridLayout无法强制转换为android.widget.GridLayout

我想创建一个能够在所有API中运行的GridLayout.

问题是,当我使用GridLayout而不是android.support.v7.widget.GridLayout时,该应用程序在Android 7.1.1中正常运行,但在旧版本中它崩溃了.

但是,如果我使用android.support.v7.widget.GridLayout而不是GridLayout(如下面的代码),它总是崩溃.

activity_main

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#FFF"
    tools:context="devector.dom.gridtest.MainActivity">


    <LinearLayout
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:layout_height="wrap_content">



    <RelativeLayout

        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textGrid"
            android:text="Grid test"
            android:textColor="#000"
            android:layout_centerInParent="true"
            android:textSize="34sp"
            />
    </RelativeLayout>

    <android.support.v7.widget.GridLayout
        android:textAlignment="center"
        android:id="@+id/mainGrid"
        android:padding="25dp"
        android:layout_marginLeft="8dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:columnCount="2"
        app:rowCount="3"
        app:alignmentMode="alignMargins"
        app:columnOrderPreserved="false">


        <!-- Row 1 -->
        <!-- Column 1-->

        <android.support.v7.widget.CardView
            android:layout_width="150dp"
            android:layout_height="125dp"
            android:layout_marginBottom="16dp"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            app:cardElevation="8dp"
            app:cardCornerRadius="8dp"
            >


            <LinearLayout
                android:layout_gravity="center_horizontal|center_vertical"
                android:layout_margin="16dp"
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                >

                <ImageView
                    android:src="@drawable/zerotwo"
                    android:layout_gravity="center_horizontal" …
Run Code Online (Sandbox Code Playgroud)

android android-gridlayout

0
推荐指数
1
解决办法
5056
查看次数

带有 CardView 的 GridLayout 未显示在较低的操作系统版本中

我是在制造GridLayoutCardView用于自动定向cardview,高度和宽度cardview设置为0dp它在nougart工作的罚款和奥利奥,但没有工作LollipopKitkat。这是布局代码:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.help.MainActivity">

    <LinearLayout
        android:orientation="vertical"
        android:background="@drawable/bg"
        android:weightSum="10"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <RelativeLayout
        android:layout_weight="2"
        android:layout_width="match_parent"
        android:layout_height="0dp">

        <TextView
            android:id="@+id/textGrid"
            android:text="GRID LAYOUT"
            android:textSize="34sp"
            android:textColor="@android:color/white"
            android:layout_centerInParent="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </RelativeLayout>

    <GridLayout
        android:id="@+id/mainGrid"
        android:columnCount="2"
        android:rowCount="3"
        android:alignmentMode="alignMargins"
        android:columnOrderPreserved="false"
        android:layout_weight="8"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:padding="14dp"
        >

        <!-- Row 1 -->

        <!-- Column 1 -->
        <android.support.v7.widget.CardView
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:layout_marginBottom="16dp"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            app:cardElevation="8dp"
            app:cardCornerRadius="8dp"
            >

            <LinearLayout
                android:layout_gravity="center_horizontal|center_vertical"
                android:layout_margin="16dp"
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"> …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-gridlayout android-studio android-cardview

0
推荐指数
1
解决办法
4994
查看次数