小编Fel*_*lix的帖子

Android:在SearchView中输入文本时阻止文本字段弹出

你好Android开发者,

我的Android SearchView小部件有问题.我要做的是将"实时"文本过滤器附加到我的ListView(文本输入自动刷新过滤器结果).它的工作原理很好,并且使用这些代码在ListActivity上工作并没有太大的努力:

private SearchView listFilter;

this.listFilter = (SearchView) findViewById(R.id.listFilter);
this.listFilter.setOnQueryTextListener(this);
this.listFilter.setSubmitButtonEnabled(false);

this.getListView().setOnItemClickListener(this);
this.getListView().setTextFilterEnabled(true);

// from OnQueryTextListener
public boolean onQueryTextChange(String newText) {
    if (newText.isEmpty()) {
        this.getListView().clearTextFilter();
    } else {
        this.getListView().setFilterText(newText);
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这里是xml小部件声明

<SearchView
    android:id="@+id/listFilter"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:iconifiedByDefault="false"
    android:queryHint="enter text to filter" />
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,每次我在SearchView中输入文本时,会立即弹出一个奇怪的文本字段,显示与我刚刚输入的相同的文本,这是无用的,因为我可以在SearchView本身看到我的输入,它部分阻止了看到我的列表条目,这很烦人.

是否有任何方法可以防止在输入SearchView时弹出该文本字段?我在xml定义的小部件选项和java类引用上都找不到任何属性.

我知道有另一种方法可以通过使用EditText和TextWatcher来提供过滤器功能,但是我必须自己处理过滤,并且无法从为我处理它的SearchView中获利.

任何建议表示赞赏.最好的祝福

费利克斯

search android listview android-widget

4
推荐指数
1
解决办法
2130
查看次数

Android JetPack Compose - 了解 @Composable 范围

我现在对此有点抓狂,无论我看了多少教程和读了多少代码片段,我根本无法理解这个概念。

我只是想将一个标记图像放在我点击的另一个图像的顶部。

class MainActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    setContent {

        MyLayout() {
            PlaceMarkerOnImage(it)
        }
    }
}

@Composable
private fun MyLayout(
    placeMarker: (Offset) -> Unit
) {
    val painter: Painter = painterResource(id = R.drawable.image)

    Column(Modifier.fillMaxSize()) {

        Box(
            modifier = Modifier.weight(0.95f)
        ) {
            Image(
                contentScale = FillBounds,
                painter = painter,
                contentDescription = "",
                modifier = Modifier.pointerInput(Unit) {
                    detectTapGestures(
                        onTap = {
                            placeMarker(it)
                        }
                    )
                }
            )
        }
        Button(
            onClick = { },
            modifier = Modifier.weight(0.05f),
            shape = …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose composable

4
推荐指数
1
解决办法
2051
查看次数