Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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 在ConstraintLayout内的RecyclerView内居中进度条_Java_Android_Android Recyclerview_Android Progressbar_Android Constraintlayout - Fatal编程技术网

Java 在ConstraintLayout内的RecyclerView内居中进度条

Java 在ConstraintLayout内的RecyclerView内居中进度条,java,android,android-recyclerview,android-progressbar,android-constraintlayout,Java,Android,Android Recyclerview,Android Progressbar,Android Constraintlayout,我有一个ProgressBar,它是RecyclerView的一个项目,是在本教程之后用适配器添加到这里的 但是在activity\u main.xml文件中,我没有使用RelativeLayout,而是使用默认的ConstraintLayout。我的问题是ProgressBar没有居中 请在下面找到我上面描述的布局: 进度条项目 活动_main.xml 您是否试图在屏幕中间居中? 或者只是在线性布局中 尝试使用重力而不是布局重力,布局重力将尝试在线性布局而不是约束布局内居中。因为已经有匹

我有一个
ProgressBar
,它是
RecyclerView
的一个项目,是在本教程之后用适配器添加到这里的

但是在
activity\u main.xml
文件中,我没有使用
RelativeLayout
,而是使用默认的
ConstraintLayout
。我的问题是
ProgressBar
没有居中

请在下面找到我上面描述的布局:

进度条项目


活动_main.xml



您是否试图在屏幕中间居中? 或者只是在线性布局中
尝试使用重力而不是布局重力,布局重力将尝试在线性布局而不是约束布局内居中。因为已经有匹配的父宽度。另外,在将进度条添加到视图中时,也要显示post代码。

是否要将其置于屏幕中间? 或者只是在线性布局中
尝试使用重力而不是布局重力,布局重力将尝试在线性布局而不是约束布局内居中。因为已经有匹配的父宽度。另外,在将进度条添加到视图中时,也要发布代码以显示。

我仔细查看了您的问题,但根本不清楚发生了什么。我已经采取了样本项目,并应用到布局您的更改,它的工作刚刚好。(我确实删除了一个
tools
引用,并更改了几个ID。)

下面是对上面两个布局所做的更改。下面是一个按预期显示中心进度条的示例

我认为这是一个约束问题,但正如您从演示中看到的,情况并非如此

这也可能与您正在运行的
ConstraintLayout
版本或其他一些配置有关,因此您可能需要检查一下。否则,看起来有什么事情正在发生,但还没有透露出来。您是否正在对布局小部件进行任何其他操作

了解您的布局中有哪些内容没有排列是很有用的。给
LinearLayout
一个背景色,看看它是否在屏幕上伸展。这将告诉您进度条是否未对齐或
LinearLayout
是否被挤压


另一种可能性:您是否未能在
线性布局的膨胀中命名父项?说这样的话:

View view = LayoutInflater.from(activity).inflate(R.layout.item_loading, null, false);
而不是这个

View view = LayoutInflater.from(activity).inflate(R.layout.item_loading, parent, false);

这个小小的差异会把你的进度条推到一边。

我仔细研究了你的问题,现在还不清楚到底发生了什么。我已经采取了样本项目,并应用到布局您的更改,它的工作刚刚好。(我确实删除了一个
tools
引用,并更改了几个ID。)

下面是对上面两个布局所做的更改。下面是一个按预期显示中心进度条的示例

我认为这是一个约束问题,但正如您从演示中看到的,情况并非如此

这也可能与您正在运行的
ConstraintLayout
版本或其他一些配置有关,因此您可能需要检查一下。否则,看起来有什么事情正在发生,但还没有透露出来。您是否正在对布局小部件进行任何其他操作

了解您的布局中有哪些内容没有排列是很有用的。给
LinearLayout
一个背景色,看看它是否在屏幕上伸展。这将告诉您进度条是否未对齐或
LinearLayout
是否被挤压


另一种可能性:您是否未能在
线性布局的膨胀中命名父项?说这样的话:

View view = LayoutInflater.from(activity).inflate(R.layout.item_loading, null, false);
而不是这个

View view = LayoutInflater.from(activity).inflate(R.layout.item_loading, parent, false);

这个微小的差异会将进度条推到一边。

您需要将重力添加到父线性布局中,以将孩子的重力设置为中心。我已更正进度条布局。 希望这能有所帮助

<?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="wrap_content"
        android:gravity="center"
        android:orientation="vertical">

        <ProgressBar
            android:id="@+id/progressbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal" />

    </LinearLayout>

您需要将重力添加到父线性布局中,以将子对象的重力设置为中心。我已更正progressbar布局。 希望这能有所帮助

<?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="wrap_content"
        android:gravity="center"
        android:orientation="vertical">

        <ProgressBar
            android:id="@+id/progressbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal" />

    </LinearLayout>


我又看了一眼你的问题,认为我的回答没有真正解决这个问题。当你说进度条没有居中时,你的屏幕是什么样子的?你能发布一个屏幕截图吗?我又看了一眼你的问题,认为我的回答没有真正解决它。当你说进度条没有居中时,你的屏幕是什么样子的?你能发布一个屏幕截图吗?将
android:gravity
添加到
ProgressBar
无法修复它。而
ProgressBar
是通过编程方式添加到适配器中的,该适配器扩展了
RecyclerView.adapter
(请参阅我在问题中发布的链接。除了
activity\u main.xml
中的
ConstraintLayout
之外,它完全相同)。将
android:gravity
添加到
ProgressBar
无法修复它。而
ProgressBar
是通过编程方式添加到适配器中的,该适配器扩展了
RecyclerView.adapter
(请参阅我在问题中发布的链接。除了
activity\u main.xml
中的
ConstraintLayout
之外,它完全相同)。充气机中缺少的
父项
进度条
未居中的主要原因。谢谢。
充气机
中缺少的
父项
是导致
进度条
未居中的主要原因。谢谢