Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Recyclerview GridLayoutManager,当给定的行布局不存在时';不要包装它的内容_Java_Android - Fatal编程技术网

Java Android Recyclerview GridLayoutManager,当给定的行布局不存在时';不要包装它的内容

Java Android Recyclerview GridLayoutManager,当给定的行布局不存在时';不要包装它的内容,java,android,Java,Android,我试图通过使用Recyclerview和GridlayoutManager来列出颜色,来创建一个颜色选择器应用程序。我使用ImageButton呈现颜色。有两个recyclerviews,第一个显示我制作的主颜色,第二个显示第一个中选定颜色的色调和阴影。我的代码很难看,但这是为了实验,所以现在我只想让第二个使用gridlayoutmanager的recyclerview分为两行四列。我可以用下面的代码,但它只显示前4种颜色,其他的我必须向下滚动视图。 主要活动: package tr.com

我试图通过使用Recyclerview和GridlayoutManager来列出颜色,来创建一个颜色选择器应用程序。我使用ImageButton呈现颜色。有两个recyclerviews,第一个显示我制作的主颜色,第二个显示第一个中选定颜色的色调和阴影。我的代码很难看,但这是为了实验,所以现在我只想让第二个使用gridlayoutmanager的recyclerview分为两行四列。我可以用下面的代码,但它只显示前4种颜色,其他的我必须向下滚动视图。

主要活动:

package tr.com.beyes.colorpicker;

import android.content.res.Resources;
import android.graphics.Color;
import android.support.v4.content.res.TypedArrayUtils;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Resources r=getResources();
        int[] fontColors = r.getIntArray(R.array.fontcolors);


        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.fontColorView);
        GridLayoutManager gridLayoutManager = new GridLayoutManager(this,11, GridLayoutManager.VERTICAL, true);
        recyclerView.setLayoutManager(gridLayoutManager);


        RecyclerView recyclerView2 = (RecyclerView) findViewById(R.id.fontColorViewSub);
        GridLayoutManager gridLayoutManager2 = new GridLayoutManager(this,4);
        recyclerView2.setLayoutManager(gridLayoutManager2);

        int[] tint = new int[8];
        tint[0]=(Color.rgb(0,0,0));
        int red = Color.red(fontColors[0]);
        int green = Color.green(fontColors[0]);
        int blue = Color.blue(fontColors[0]);
        for(int i=1; i<7;i++){
            red = (int) (red + (255-red) * 0.25);
            green = (int) (green + (255-green) * 0.25);
            blue = (int) (blue + (255-blue) * 0.25);
            tint[i]=(Color.rgb(red,green,blue));
        }
        tint[7]=(Color.rgb(255,255,255));
        ColorPickerAdapter colorPickerAdapter2 = new ColorPickerAdapter(tint,this, null);
        recyclerView2.setAdapter(colorPickerAdapter2);

        ColorPickerAdapter colorPickerAdapter = new ColorPickerAdapter(fontColors,this,colorPickerAdapter2);
        recyclerView.setAdapter(colorPickerAdapter);


    }
}
package tr.com.beyes.colorpicker;
导入android.content.res.Resources;
导入android.graphics.Color;
导入android.support.v4.content.res.TypedArrayUtils;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.support.v7.widget.GridLayoutManager;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.view;
导入android.widget.Toast;
导入java.util.ArrayList;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Resources r=getResources();
int[]fontColors=r.getIntArray(r.array.fontColors);
RecycleView RecycleView=(RecycleView)findViewById(R.id.fontColorView);
GridLayoutManager GridLayoutManager=新的GridLayoutManager(this,11,GridLayoutManager.VERTICAL,true);
setLayoutManager(gridLayoutManager);
RecyclerView recyclerView2=(RecyclerView)findViewById(R.id.fontColorViewSub);
GridLayoutManager gridLayoutManager2=新的GridLayoutManager(这个,4);
RecycleServiceW2.setLayoutManager(gridLayoutManager2);
int[]tint=新int[8];
色调[0]=(Color.rgb(0,0,0));
int red=Color.red(fontColors[0]);
int green=Color.green(fontColors[0]);
int blue=Color.blue(fontColors[0]);

对于(int i=1;i1.使用
setHasFixedSize(true)
recyclerView
recyclerView2

2.更新
gridLayoutManager2
参数如下:

GridLayoutManager gridLayoutManager2 = new GridLayoutManager(this, 4, GridLayoutManager.VERTICAL, true);
3.使用
NestedScrollView
作为
线性布局的容器

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="tr.com.beyes.colorpicker.MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:orientation="vertical">

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/fontColorView" />

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/fontColorViewSub"
            android:layout_marginTop="20dp" />

    </LinearLayout>
</android.support.v4.widget.NestedScrollView>


希望这能起作用~

没有起作用。它看起来一样,但这次唯一的区别是视图开始向下滚动到第二行。我想同时显示2行,而不将滚动的ethasFixedSize(true)显示到recyclerviews。检查我的更新回答我也这样做了。相同:(尝试添加android:DegenantFocusability)=“blocksDescendants”到LinearLayoutPill相同。我想知道是否需要动态更改recyclerview的高度?
GridLayoutManager gridLayoutManager2 = new GridLayoutManager(this, 4, GridLayoutManager.VERTICAL, true);
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="tr.com.beyes.colorpicker.MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:orientation="vertical">

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/fontColorView" />

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/fontColorViewSub"
            android:layout_marginTop="20dp" />

    </LinearLayout>
</android.support.v4.widget.NestedScrollView>