我想添加一个搜索栏,以便用户可以搜索按钮列表以更快地找到他们想要的内容。 我在滚动视图(垂直)内的线性布局中有大约15个按钮。 我希望结果显示为垂直线中的几个按钮。搜索网络后,我无法回答我的问题。提前谢谢。
XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="com.example.boys.fishkeeper.Categories">
<ScrollView
android:id="@+id/categoryScrollView"
style="@android:style/Widget.DeviceDefault.ScrollView"
android:layout_width="330dp"
android:layout_height="457dp"
android:layout_marginBottom="4dp"
android:layout_marginEnd="4dp"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/barbsButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Barbs"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/tetrasButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Tetras"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/livebearersButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Livebearers"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/gouramisButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Gouramis"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/cichlidsButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Cichlids"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/bettaButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Betta"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/rasborasButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Rasboras"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/daniosButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Danios"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/snakeheadsButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Snakeheads"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/mormyridsButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Mormyrids"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/catfishButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Catfish"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/knifefishButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="KnifeFish"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/loachesButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Loaches"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/pufferfishButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pufferfish"
android:textSize="24sp"
tools:background="@color/searchColor" />
<Button
android:id="@+id/plecsButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Plecs"
android:textSize="24sp"
tools:background="@color/searchColor" />
</LinearLayout>
</ScrollView>
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:0)
首先将id设置为您的LinearLayout,然后在您的活动中使用findViewById(),然后创建方法以识别哪个按钮可见
public void filter(String seaarchText) {
for (int i = 0;i < linLay.getChildCount();i++) {
Button button = linLay.getChildAt(i);
if (button.getText().toString().contains(searchText)) {
button.setVisibility(View.Visible);
} else
button.setVisibility(View.GONE);
}
}