草庐IT

android - RecyclerView 滚动条在 Android 的对话框 fragment 中不可见

coder 2023-12-29 原文

我有一个对话框 fragment ,其中有一个回收器 View 。我想在回收站 View 中添加一个滚动条。我添加了 scrollbars="vertical" 但它没有显示。我认为这个问题与主题有关。 这是我的 xml:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:padding="16dp"
tools:context="com.airxos.app.common.fragments.LayerSwitcherFragment">

<TextView
    android:id="@+id/layer_list_title"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:fontFamily="sans-serif"
    android:textSize="20sp"
    android:textStyle="bold"
    android:textColor="@color/black_87"
    android:text="@string/layers"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/layer_list"
    android:layout_marginTop="@dimen/margin_16"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/layer_list_title"
    app:layout_constraintEnd_toEndOf="parent"
    android:layout_height="0dp"
    android:maxHeight="@dimen/info_window_height"
    android:layout_width="match_parent"
    android:nestedScrollingEnabled="true"
    android:scrollbars="vertical"
    android:background="@color/white"
    android:scrollbarThumbVertical="@drawable/scrollbar"
    android:scrollbarSize="5dp"
    android:padding="5dp"
    android:scrollbarStyle="insideInset"/>
</android.support.constraint.ConstraintLayout>

我正在限制对话框 fragment 的高度和宽度,如下所示:

@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                         @Nullable Bundle savedInstanceState) {
    Objects.requireNonNull(inflater, "LayoutInflater");

    if(getDialog().getWindow() != null) {
        getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        getDialog().setCanceledOnTouchOutside(true);
    }
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_layer_switcher, container, false);
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    Objects.requireNonNull(view, "View");

    super.onViewCreated(view, savedInstanceState);
    layerList = view.findViewById(R.id.layer_list);
    layerList.setAdapter(new LayerListAdapter(context, layers, layerSelectionListener));
    layerList.setLayoutManager(new LinearLayoutManager(context));
}

我已经尝试了此 SO question 中建议的所有内容但它没有用。

除此之外,我还尝试创建一个可绘制对象并将其添加为 scrollbarThumbVertical

我认为这与主题有关,因为即使我更改了约束布局的背景颜色,它也没有显示在对话框中。

编辑: 我正在显示如下所示的对话框:

LayerSwitcherFragment switcherFragment = LayerSwitcherFragment.newInstance(layers);
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
Fragment prev = getChildFragmentManager().findFragmentByTag("layer_dialog");
    if (prev != null) {
        ft.remove(prev);
    }
    ft.addToBackStack(null);
switcherFragment.show(ft, "layer_dialog");

编辑:问题已解决。 很抱歉浪费了大家的时间。这个问题是我们犯的一个愚蠢的错误。我的 DialogFragment 在库中。我们构建了 arr 文件并在应用程序中使用它。问题是当我们将 dialogfragment 的 XML 文件重构到 arr 库时,我们忘记从主应用程序中删除它。因此,即使在我们更新了库中的文件之后,应用程序仍在主应用程序中选取旧文件而不是更新后的文件,因为 XML 的名称是相同的。

最佳答案

尝试:

android:fadeScrollbars="false"
android:scrollbarAlwaysDrawVerticalTrack="true"

关于android - RecyclerView 滚动条在 Android 的对话框 fragment 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57428965/

有关android - RecyclerView 滚动条在 Android 的对话框 fragment 中不可见的更多相关文章

  1. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  2. ruby - 使用 Ruby CSV 创建 Rails 记录,其中字符串字段不可查询 - 2

    我正在尝试将种子数据从CSV文件加载到我的Rails应用程序中。我最初安装了fastercsvgem,却发现从ruby​​1.9开始,fastercsv已被弃用,取而代之的是CSV库。所以在收到一个非常有用的错误告诉我切换后,我切换到CSV。然而,现在我遇到了最奇怪的现象,当我加载数据时一切看起来都很正常,但我似乎无法查询字符串字段。字符串字段由看似正确的字符串填充,但我无法访问它们。我可以查询任何数字字段,结果将返回,但不会返回字符串字段。我尝试使用引号的定界符,但无济于事。我什至从我的csv文件中删除了所有引号,但我仍然无法查询字符串字段。下面是我的代码,以及一些来自Rails控制

  3. ruby - IO::EAGAINWaitReadable:资源暂时不可用 - 读取会阻塞 - 2

    当我尝试使用“套接字”库中的方法“read_nonblock”时出现以下错误IO::EAGAINWaitReadable:Resourcetemporarilyunavailable-readwouldblock但是当我通过终端上的IRB尝试时它工作正常如何让它读取缓冲区? 最佳答案 IgetthefollowingerrorwhenItrytousethemethod"read_nonblock"fromthe"socket"library当缓冲区中的数据未准备好时,这是预期的行为。由于异常IO::EAGAINWaitReadab

  4. ruby-on-rails - capybara 错误:Selenium::WebDriver::Error::ElementNotVisibleError:元素不可见 - 2

    我正在使用TrixWYSIWYGeditor在我的应用程序中。对于我的capybara测试:我要填写编辑器。我找到了这篇文章:Howtotestbasecamp'stripeditor...这似乎很有希望。不幸的是,它一直给我这个错误:Selenium::WebDriver::Error::ElementNotVisibleError:elementnotvisible所以看起来Capybara发现元素没问题,但它只是没有与之交互,因为Capybara必须有一些默认设置才能不与隐藏/不可见元素交互。环顾四周后,我发现了这个Stackoverflow问题:Isitpossibletoin

  5. ruby-on-rails - 为什么 Array.count 在开发模式下可用但在生产模式下不可用? - 2

    对于最近的一个项目,我有几个View是这样的代码:这在开发模式下工作得很好......我将它推出到生产模式并且它爆炸了,说count不是Array的有效方法。我将每个实例都改为使用Array#length,它似​​乎可以正常工作。1)这种行为差异的原因是什么?2)我应该注意开发模式和生产模式之间的任何其他令人兴奋的差异吗?道德:确保您的生产托管环境使用与本地开发环境相同的Ruby版本。:)谢谢汤姆 最佳答案 count方法仅在Ruby1.9及更高版本中可用。我建议您使用与服务器相同版本的Ruby以避免此类问题-1.9中发生了很多变化

  6. ruby-on-rails - 将配置文件模型的某些属性设置为对其他用户公开(可见)或私有(private)(不可见)的最佳方法是什么? - 2

    我有一个Profile模型,它有很多属性,比如电子邮件、图像、年龄、地址等。最终用户可以将某些属性设为私有(private),以便其他用户无法查看。我通过向表private_attr添加一列并将其序列化以存储哈希来解决这个问题:-{email:true,address:true,age:false}这里的属性作为具有值true的键被认为是私有(private)的,不会向除这些属性所属的用户以外的用户显示。我想知道这是解决这个问题的最好方法,还是有其他方法。提前致谢。 最佳答案 我认为您可以只序列化用户希望在数组中私有(private

  7. ruby - 绕过 Element 的方法无法滚动到 View 中 - Watir-webdriver with Ruby - 2

    因此,我们的页面中有以下代码:OnOff这是2个单选按钮。'开和关'。“关闭”是默认值。使用Watir-webdriver和Ruby,我们想要选择“打开”单选按钮。我们这样做:browser.radio(:id=>"HasRegistration_true").set但在这样做时,我们得到以下错误:`WebElement.clickElement':Elementcannotbescrolledintoview:[objectHTMLInputElement](Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)我们知道Sele

  8. ruby - 如何删除 ruby 中的不可打印/不可见字符? - 2

    有时我在字符串中间有邪恶的不可打印字符。这些字符串是用户输入的,所以我必须让我的程序很好地接收它,而不是试图改变问题的根源。例如,他们可以有zerowidthno-breakspace在字符串的中间。例如,在解析.po文件时,一个有问题的部分是文件中间的字符串"heisamanofgod"。虽然一切看起来都是正确的,但使用irb检查它会显示:"heisamanofgod".codepoints=>[104,101,32,105,115,32,97,32,65279,109,97,110,32,111,102,32,103,111,100]我相信我知道什么是BOM,而且我什至能很好地处理

  9. Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信) - 2

    运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid

  10. Android 10.0 设置默认launcher后安装另外launcher后默认Launcher失效的功能修复 - 2

    1.前言 在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安装一款Launcher的时候,默认Launcher就会失效,在系统设置的默认应用中Launcher选项就为空,点击home键的时候会弹出默认Launcher列表,让选择进入哪个默认Launcher.所以需要从安装Launcher的流程来分析相关的设置。来解决问题设置默认La

随机推荐