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

如何从首选项布局中删除默认标题和摘要

郎玮
2023-03-14

我正在尝试创建一个自定义的首选项设置(它将包含一个标题、摘要和一个进度条,向用户指示同步过程)。我有一个问题,完全删除原来的标题和摘要,因为它看起来像是在布局缩进(更多细节见附图)

我创建了一个自定义布局:

R.布局。手动同步布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:focusable="true"
        android:id="@+id/manual_sync_layout"
        android:background="?attr/selectableItemBackground">


    <ImageView
            android:id="@android:id/icon"
            app:layout_constraintTop_toTopOf="parent"
            android:visibility="gone"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@null"
            android:layout_gravity="center"/>

    <TextView android:id="@android:id/title"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              app:layout_constraintStart_toStartOf="parent"
              app:layout_constraintTop_toTopOf="parent"
              android:textSize="16sp"
              android:padding="10dp"
              android:text="@string/manual_sync"
              android:textColor="@android:color/black"/>
    <TextView
            app:layout_constraintTop_toBottomOf="@android:id/title"
            app:layout_constraintStart_toStartOf="parent"
            android:id="@android:id/summary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@android:id/title"
            android:layout_alignStart="@android:id/title"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="?android:attr/textColorSecondary"
            android:maxLines="4"
            android:paddingTop="5dp"
            android:paddingBottom="5dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:text="@string/sync_manually_desc"
    />

    <ProgressBar
            android:id="@+id/manual_sync_progress"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            android:indeterminate="false"
            app:layout_constraintEnd_toEndOf="parent"
            style="?android:attr/progressBarStyleSmall"
            android:padding="10dp"
            android:visibility="gone"/>

</androidx.constraintlayout.widget.ConstraintLayout>

手动同步

############################################################################################################################################

init {
    widgetLayoutResource = R.layout.manual_sync_layout
}

override fun onBindViewHolder(holder: PreferenceViewHolder) {
    super.onBindViewHolder(holder)
    val manualSyncLayout = holder.findViewById(R.id.manual_sync_layout)
    val syncProgress = holder.findViewById(R.id.manual_sync_progress)
    manualSyncLayout.setOnClickListener {
        syncProgress.visibility = if(syncProgress.visibility== View.VISIBLE) View.GONE else View.VISIBLE
    }

}

}

偏好。xml

<PreferenceCategory
        app:title="@string/sync_header">

    <SwitchPreferenceCompat
            app:key="sync"
            app:title="@string/sync_title"/>

    <SwitchPreferenceCompat
            app:key="attachment"
            app:title="@string/attachment_title"
            app:summaryOn="@string/attachment_summary_on"
            app:summaryOff="@string/attachment_summary_off"
            app:dependency="sync"/>

    <com.example.myapplication.ManualSyncPreference
            app:key="manual_key"
            app:title=""
            app:summary=""/>

</PreferenceCategory>

最后一排有很大的差距

共有1个答案

宓英哲
2023-03-14

您需要设置布局资源而不是widgetLayoutResource——小部件布局资源是首选项布局的一部分,它在末尾包含一个小部件,例如开关或复选框。在您的情况下,您希望替换整个布局,因此需要更改layoutResource。我认为把widgetLayoutResource重命名为layoutResource应该可以。

 类似资料:
  • 问题内容: 我试图找到一些可以使用qt布局并从中删除所有内容的东西。只是想像一下窗口是什么样子-我有: 所以我需要可以递归调用的东西,以清除并删除父母的所有东西。我尝试了这里提到的事情(在pyqt中清除布局中的所有小部件),但是它们都不起作用(无论如何都没有标记正确答案)。我的代码如下所示: 但这给出了一个错误: =>编辑这种方法很有效(但是,除了: 问题答案: 清除布局的最安全方法是使用其tak

  • 如何注释我header.php中的标语? 我正在使用2014年的主题,并试图遵循WordPress codex中的元标签说明。要生成一个描述元标记,它会指示您将描述添加到标语中。但是这个标语显示在我打开网页的每个窗口/选项卡的顶部(以及我的网站名称)。要隐藏标语,WordPress建议“删除或注释掉标头区域的标签”我做这个有困难。我在header.php?中到底要评论什么,我在标题中没有看到任何带

  • 我将历史记录项(单词)保存到共享首选项,并且历史记录已很好地加载到ListView中查看。然后,我使用这些代码行从 ListView 中删除特定项: 选定项将从ListView中明确删除,但不会从保存该项的SharedPreferences中删除。因此,当重新加载Listview时,该项仍然存在。 我的问题是:我如何编写代码以从共享首选项中删除选定的项目?我的意思是如何从ListView和共享首选

  • 我想禁用所有内置指标(jvm、cpu等),但保留自定义指标。 当我与Datadog一起启用Spring Boot执行器度量时,我最终将320个度量发送给Datadog。这些指标中的大多数来自内置核心指标(JVM指标、CPU指标、文件描述指标),其中只有5个是我的自定义指标,这些指标是我要发送给datadog的。 根据Spring Boot文档的本节: Spring Boot还配置了内置的仪器(即。

  • 问题内容: 在我的JFrame中,我具有默认的咖啡图标。我要删除它。但是当我做setIconImage(null)时不起作用。谁能告诉我有关如何完全删除图标的解决方案 问题答案: 创建由一个像素(更好地透明)组成的图标并使用它。如果您需要这样的图标,请与我联系。我会寄给你。

  • 如何禁用这两个checkstyle规则文件,使它们不再困扰我?