标签: android-gridlayout

无法解决错误 - 视图需要API级别14(当前最小值为8):<GridLayout>

我的代码是 -

<GridLayout 
xmlns:android= "http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:columnCount="4"
android:orientation="horizontal" >



<Button android:text="@string/btn7" />

<Button android:text="@string/btn8" />

<Button android:text="@string/btn9" />

<Button android:text="@string/btndiv" />

<Button android:text="@string/btn4" />

<Button android:text="@string/btn5" />

<Button android:text="@string/btn6" />

<Button android:text="@string/btnmul" />

<Button android:text="@string/btn1" />

<Button android:text="@string/btn2" />

<Button android:text="@string/btn3" />

<Button android:text="@string/btnmin" />

<Button android:text="@string/btn00" />

<Button android:text="@string/btn0" />

<Button android:text="@string/btndec" />

<Button android:text="@string/btnadd" />

<Button android:text="@string/btnsqrt" />

<Button android:text="@string/btncbrt" />

<Button android:text="@string/btnrec" />

<Button
android:layout_gravity="fill"
android:layout_rowSpan="2"
android:text="@string/btneql" />

<Button android:text="@string/btnpow" />

<Button android:text="@string/btnper" />

<Button …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-gridlayout

3
推荐指数
2
解决办法
2万
查看次数

混淆android.support.v7.widget.GridLayout问题

我正在试图模糊我的android应用程序,我使用android.support.v7.appcompat和android.support.v7.GridLayout,但应用程序崩溃时出现以下异常:

android.view.InflateException: Binary XML file line #2: Error inflating class    android.support.v7.widget.GridLayout
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:698)
at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at com.droid.fragments.c.al.onCreateView(Unknown Source)
at android.support.v4.app.Fragment.performCreateView(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown Source)
at android.support.v4.app.BackStackRecord.run(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(Unknown Source)
at android.support.v4.app.FragmentManagerImpl$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: android.support.v7.widget.GridLayout
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.view.LayoutInflater.createView(LayoutInflater.java:552)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
Run Code Online (Sandbox Code Playgroud)

我的proguard-project.txt:

-dontusemixedcaseclassnames  
-dontskipnonpubliclibraryclasses  
-verbose  
-dontoptimize  
-dontpreverify  
-keepclasseswithmembernames class …
Run Code Online (Sandbox Code Playgroud)

android proguard android-gridlayout

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

网格布局。如何设置列之间的空间?

Android Studio 3.1、Java 1.8、Gradle 4.1

我使用 GridLayout。一切正常。但我需要在列之间和行之间设置空间(例如 10dp)。我怎么能做到这一点?

主文件

            <GridLayout
                android:id="@+id/categoriesContainer"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:verticalSpacing="10dp"
                app:layout_constraintEnd_toEndOf="@+id/birthDateContainer"
                app:layout_constraintStart_toStartOf="@+id/birthDateContainer"
                app:layout_constraintTop_toBottomOf="@+id/birthDateContainer">


            </GridLayout>
Run Code Online (Sandbox Code Playgroud)

profile_category_active.xml

<?xml version="1.0" encoding="utf-8"?>
<layout 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.support.constraint.ConstraintLayout
        android:id="@+id/profileCategoryContainer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">       


        <TextView
            android:id="@+id/categoryNameTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_marginEnd="30dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="30dp"
            android:layout_marginStart="5dp"
            android:layout_marginTop="5dp"
            android:ellipsize="end"
            android:maxLines="1"
            android:text="TextView"                />
    </android.support.constraint.ConstraintLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

活动:我以编程方式添加行:

 GridLayout gridLayout = findViewById(R.id.categoriesContainer);
    gridLayout.setColumnCount(columnCount);
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    for (int index = 0; index < 10; index++) {
     View profileCategoryActive = inflater.inflate(R.layout.profile_category_active, null, false);
            categoriesGridContainer.addView(profileCategoryActive);
            ConstraintLayout profileCategoryContainer = profileCategoryActive.findViewById(R.id.profileCategoryContainer); …
Run Code Online (Sandbox Code Playgroud)

android android-gridlayout

3
推荐指数
2
解决办法
2万
查看次数

如何使用GridLayout在Android上调整表单标签的方向

我有一个表单,我想在一列中显示:

     account name
______________________

       password
______________________

[       connect       ]
Run Code Online (Sandbox Code Playgroud)

当水平空间有限时(即纵向).当水平空间充足时,我希望它流入两列方向:

account name _________________
    password _________________
[          connect            ]      
Run Code Online (Sandbox Code Playgroud)

我知道你可以使用一对布局资源来做到这一点,但我想只有一个动态列数的布局.

android android-orientation android-gridlayout

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

在gridLayout中从右到左放置项目

我有一个GridLayout布局.我想从右到左放置项目,这意味着我希望在我的布局的右上角有单元格(1,1).GridView到目前为止,我已经测试了这些代码:

1 android:gravity="right"android:layout_gravity="right" ,但它不工作.

2-我也测试过 android:layoutDirection="rtl"

它也不起作用.如何从右到左放置物品?

android right-to-left android-gridlayout

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

Android - 如何在 gridlayout 中以编程方式设置边距

试图在网格布局中获得几行按钮。

按钮大小还可以,但边距似乎坏了。

package ray.gui;
import android.app.Activity;
import android.content.pm.*;
import android.graphics.*;
import android.os.Bundle;
import android.view.*;
import android.widget.*;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        int size=150;
        int rows=2;
        int columns=5;
        Integer[] colors=new Integer[columns];
        colors[0]=Color.RED;
        colors[1]=Color.YELLOW;
        colors[2]=Color.GREEN;
        colors[3]=Color.BLUE;
        colors[4]=Color.rgb(255,165,0);
        GridLayout gridLayout=new GridLayout(this);
        gridLayout.setRowCount(rows);
        gridLayout.setColumnCount(columns);
        GridLayout.LayoutParams layoutParams=new GridLayout.LayoutParams();
        layoutParams.setMargins(size*30/100,size*30/100,size*30/100,size*30/100);
        gridLayout.setLayoutParams(layoutParams);
        for(int i=0;i<rows*columns;i++) {
            Button button=new Button(this);
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(size,size);
            params.width = size;
            params.height= size;
            button.setLayoutParams(params);
            button.setText(""+i);
            //button.setLayoutParams(layoutParams);
            if(i/columns%2==1)
                button.setBackgroundColor(colors[i%columns]);
            gridLayout.addView(button);
        }
        setContentView(gridLayout);
    }
    @Override …
Run Code Online (Sandbox Code Playgroud)

java user-interface android android-layout android-gridlayout

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

GridLayout超出范围

我试图用GridLayout重现这个计算器布局

在此输入图像描述

但这是我尝试的代码所得到的.

在此输入图像描述

实际上在设备上它变得更糟,它会削减必须跨越两行的最后一个相等按钮.

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#000000"
    android:columnCount="5"
    android:rowCount="2"
    android:orientation="horizontal"
    android:padding="5dp">

    <Button
        android:layout_columnSpan="1"
        android:layout_rowSpan="1"
        android:text="1" />

    <Button
        android:layout_columnSpan="1"
        android:layout_rowSpan="1"
        android:text="2" />

    <Button
        android:layout_columnSpan="1"
        android:layout_rowSpan="1"
        android:text="3" />

    <Button
        android:layout_columnSpan="1"
        android:layout_rowSpan="1"
        android:text="-" />

    <Button
        android:layout_columnSpan="1"
        android:layout_rowSpan="2"
        android:layout_gravity="fill_vertical"
        android:text="=" />


    <Button
        android:layout_columnSpan="2"
        android:layout_rowSpan="1"
        android:layout_gravity="fill_horizontal"
        android:text="0" />

    <Button
        android:layout_columnSpan="1"
        android:layout_rowSpan="1"
        android:text="." />

    <Button
        android:layout_columnSpan="1"
        android:layout_rowSpan="1"
        android:text="+" />

    <Space
        android:layout_columnSpan="1"
        android:layout_rowSpan="1"
        android:text="-" />

    <Space
        android:layout_columnSpan="1"
        android:layout_rowSpan="1"
        android:text="=" />

</GridLayout>
Run Code Online (Sandbox Code Playgroud)

然而,它一直走出界限.我试图根据这个帖子改为"android.support.v7.widget.GridLayout":

GridLayout列超出了它的范围

但没多大帮助.

任何线索如何使其精确匹配手机大小?

android android-gridlayout

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

在一起使用GridLayout和ConstraintLayout时,已经定义了属性"orientation"

在使用GridLayout和ConstraintLayout时,我收到以下错误

Error:(115) Attribute "orientation" has already been defined
Run Code Online (Sandbox Code Playgroud)

问题是因为两个库都使用它

<attr name="orientation">
Run Code Online (Sandbox Code Playgroud)

有没有人知道一个解决方法?

android android-gridlayout android-constraintlayout

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

Android 中两行四个按钮填满整个屏幕

我想用四个具有相同宽度和高度的按钮填充整个屏幕,所以我认为网格布局是一个好主意:

<GridLayout
    android:id="@+id/grid"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="2"
    android:rowCount="2"
    >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_columnWeight="1"
        android:layout_rowWeight="0"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_columnWeight="1"
        android:layout_rowWeight="0"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        />

</GridLayout>
Run Code Online (Sandbox Code Playgroud)

不幸的是我的结果看起来像这样:

网格布局结果

我不明白为什么第二排的高度这么大?
我认为网格布局中的每个单元格都有相同的宽度和高度!

height android width android-layout android-gridlayout

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

Grid Recyclerview,偶数行3列,奇数行4列

如何创建偶数行 3 列和奇数行 4 列的 Grid Recyclerview?

    lLayout = new GridLayoutManager(getActivity(), 4, LinearLayoutManager.VERTICAL, false); // MAX NUMBER OF SPACES

    lLayout.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            return (position % 3 == 0 ? 3 : 4);
        }
    });

    recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
    recyclerView.setLayoutManager(lLayout);

    if (arrayList != null) {
        adapter = new RecyclerViewAdapter(getActivity(), arrayList);
        recyclerView.setAdapter(adapter);
    }
Run Code Online (Sandbox Code Playgroud)

android android-gridlayout gridlayoutmanager android-recyclerview

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