fix: prevent clipping in tablet search headers (#6658)

- Fix clipped text in internet search section headers on tablets.
- Use flexible header height with a minimum height to keep layout consistency.
- Keep spacer rows with fixed heights while allowing normal headers to grow.
- Increase tablet search row dimensions for better readability on large screens.
- Correct search result side margins by applying left/right padding independently.
This commit is contained in:
Julián Santiago Flórez Castañeda authored and GitHub committed 2026-05-10 18:24:59 +08:00
1 parent a05fdd4bc9
commit b8066dc7e4
4 files changed
+27 -10

No files matched your search

@@ -2,7 +2,8 @@
<app.lawnchair.allapps.views.SearchResultText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/search_result_text"
android:layout_width="match_parent"
android:layout_height="@dimen/search_result_text_height"
android:layout_height="wrap_content"
android:minHeight="@dimen/search_result_text_height"
android:orientation="horizontal"
android:paddingStart="8dp">
@@ -26,6 +27,7 @@
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="start|center"
android:includeFontPadding="true"
android:maxLines="1"
android:paddingEnd="4dp"
android:singleLine="true"
+7 -1
View File
@@ -1,5 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="search_result_small_row_height">82dp</dimen>
<dimen name="search_result_row_medium_height">96dp</dimen>
<dimen name="search_result_row_height">112dp</dimen>
<dimen name="search_result_text_height">72dp</dimen>
<dimen name="search_result_files_row_height">120dp</dimen>
<dimen name="all_apps_search_bar_content_overlap">0dp</dimen>
<dimen name="allset_page_allset_text_size">38sp</dimen>
<dimen name="allset_page_margin_horizontal">120dp</dimen>
@@ -30,4 +36,4 @@
<dimen name="task_thumbnail_icon_drawable_size_grid">44dp</dimen>
<dimen name="wallpaper_carousel_height">132dp</dimen>
<dimen name="widget_list_horizontal_margin">32dp</dimen>
</resources>
</resources>
@@ -39,12 +39,20 @@ class SearchResultText(context: Context, attrs: AttributeSet?) :
override fun bind(target: SearchTargetCompat, shortcuts: List<SearchTargetCompat>) {
title.text = target.searchAction?.title
val res = when (title.text) {
val titleText = title.text
val res = when (titleText) {
SPACE -> resources.getDimensionPixelSize(R.dimen.space_layout_height)
SPACE_MINI -> resources.getDimensionPixelSize(R.dimen.space_layout_mini_height)
else -> resources.getDimensionPixelSize(R.dimen.search_result_text_height)
}
val layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, res)
this.layoutParams = layoutParams
if (titleText == SPACE || titleText == SPACE_MINI) {
val layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, res)
this.layoutParams = layoutParams
minimumHeight = 0
} else {
val layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
this.layoutParams = layoutParams
minimumHeight = res
}
}
}
@@ -66,18 +66,19 @@ class LawnchairSearchAdapterProvider(
): BaseAllAppsAdapter.ViewHolder {
val view = layoutInflater.inflate(layoutIdMap[viewType], parent, false)
val grid: DeviceProfile = mLauncher.deviceProfile
val horizontalMargin = grid.allAppsPadding.left + grid.allAppsPadding.right
val leftMargin = grid.allAppsPadding.left
val rightMargin = grid.allAppsPadding.right
if (viewType != SEARCH_RESULT_ICON) {
val layoutParams = ViewGroup.MarginLayoutParams(view.layoutParams)
layoutParams.leftMargin = horizontalMargin
layoutParams.rightMargin = horizontalMargin
layoutParams.leftMargin = leftMargin
layoutParams.rightMargin = rightMargin
view.layoutParams = layoutParams
}
if (viewType == SEARCH_TEXT_HEADER) {
val layoutParams: ViewGroup.MarginLayoutParams = ViewGroup.MarginLayoutParams(0, 0)
layoutParams.leftMargin = horizontalMargin
layoutParams.rightMargin = horizontalMargin
layoutParams.leftMargin = leftMargin
layoutParams.rightMargin = rightMargin
view.layoutParams = layoutParams
}