当前位置: 首页 > 知识库问答 >
问题:

卡视图宽度与屏幕宽度不匹配?

仲孙献
2023-03-14

我正在尝试将CardView宽度与屏幕宽度匹配,但CardView的宽度与屏幕宽不匹配。我一次又一次地检查了我的代码,甚至使所有属性的宽度等于匹配的父级。

Recyclerview xml--

<?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"
    tools:context=".DisplayTodayExercises">

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

</android.support.v7.widget.RecyclerView>

</LinearLayout>

卡片视图xml -

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/activity_general_dimen"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/exer_name"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        android:layout_height="40dp"
        android:textStyle="bold"
        android:gravity="center_vertical"
        tools:text="Exercise Name"/>


    <TextView
        android:id="@+id/se_eps"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:textStyle="bold"
        android:layout_marginLeft="@dimen/sets_reps_dimen"
        android:gravity="center_vertical"
        android:layout_height="40dp"
        tools:text="5 x 6"/>

    <CheckBox
        android:id="@+id/checkbox"
        android:layout_width="wrap_content"
        android:layout_marginLeft="@dimen/sets_reps_dimen"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"/>

</LinearLayout>
  </android.support.v7.widget.CardView>

膨胀代码

LayoutInflater inflater = LayoutInflater.from(context);
    View view = inflater.inflate(R.layout.exercises_card_view_layout, null);
    return new ExerciseContentViewHolder(view);

这是屏幕截图

共有2个答案

锺离霖
2023-03-14

这是一种已知问题。您可以使用例如相对布局包装您的卡视图,或者从此处尝试解决方案:CardView layout_width=“match_parent”与父回收器视图宽度不匹配

谢麒
2023-03-14

问题出在充气机上。查看LayoutInflator的文档,特别是充气方法

试试这个:

LayoutInflater.from(parent.getContext())
        .inflate(R.layout.exercises_card_view_layout, parent, false);

不提供null,而是提供父视图。这样,充气机知道使用什么布局参数。提供false参数告诉LayoutInflater暂时不要将其附加到父级。RecyclerView会为您处理这个问题。

 类似资料:
  • 问题内容: 我正在尝试设置此样式: 以便标题位于与图像宽度相同的阴影框中。请注意,有时可以将其放在表的内部。它也不应超过父元素的宽度(必要时将图像缩小)。 这是我到目前为止的内容: 问题在于,放置as 使其不再影响其他元素的流动,因此它会将其覆盖在其下方的内容上,而不是将其下推。 html标记是自动生成的,我无法对其进行任何编辑,因此我想知道使用 纯css 是否可行。 问题答案: 您可以使用CSS

  • 如何在 React 原生中获取屏幕宽度?我需要它,因为我使用了一些重叠的绝对组件,并且它们在屏幕上的位置会随着不同的设备而变化。

  • 问题内容: 我正在使用SwiftUI绘制一个表,该表的行和列太多,无法容纳 屏幕宽度/高度。在这种情况下,我无法将视图对齐为 领先,但总是以某种方式居中。我该如何调整他们的领先地位?这 是绘制表格的视图: 这是GridStack: 这就是应用程序中的外观。请注意,边缘不适合 屏幕内部。即使我尝试滚动到那里,它也会反弹回来。 问题答案: 这是一个可能的方法演示(以及改进的方向,因为我 没有测试所有情

  • 我如何才能使它的应用程序是优化的所有屏幕?

  • 问题内容: 有没有办法找出场景渲染部分的宽度? 例如,如果我们有一个宽度为100的网格,但是以一定的缩放级别进行渲染…我如何计算在屏幕上渲染的网格部分的宽度? 问题答案: 您必须在这里精确。 您可以根据给定相机的视场和距相机的给定距离,计算可见的矩形区域。 由于对象大概具有深度,因此您必须从网格中选取一个平面,然后以该距离进行计算。 这是计算可见光以及距相机给定距离的方法。 three.js r.

  • 组件的高度和宽度决定了其在屏幕上显示的尺寸。 指定宽高 最简单的给组件设定尺寸的方式就是在样式中指定固定的 width 和 height 。React Native 中的尺寸都是无单位的,表示的是与设备像素密度无关的逻辑像素点。 export default class HelloWorld extends Component { render() { return ( <