Use custom drop-down filter widget

This CL is just a example how to use this SettingsSpinner.

Change-Id: Ie0d104ce5f3e4c6b852fe7c051253b1567c6c4cd
Fixes: 112706966
Test: robotests
This commit is contained in:
tmfang
2018-10-04 17:59:03 +08:00
parent 93c86ab1b6
commit 0d07dd19d0
2 changed files with 14 additions and 16 deletions

View File

@@ -15,31 +15,30 @@
limitations under the License. limitations under the License.
--> -->
<LinearLayout <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize" android:layout_height="wrap_content">
android:background="?android:attr/colorAccent"
android:gravity="center_vertical"
android:orientation="horizontal">
<Spinner <com.android.settingslib.widget.settingsspinner.SettingsSpinner
android:id="@+id/filter_spinner" android:id="@+id/filter_spinner"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="0dp" android:layout_width="wrap_content"
android:layout_weight="1" android:layout_centerHorizontal="true"
android:paddingStart="64dp" android:layout_marginTop="24dp"
android:background="@drawable/app_filter_spinner_background"/> android:layout_marginBottom="16dp"/>
<ImageView <ImageView
android:id="@+id/filter_settings" android:id="@+id/filter_settings"
style="?android:attr/borderlessButtonStyle" style="?android:attr/borderlessButtonStyle"
android:layout_width="56dp" android:layout_width="56dp"
android:layout_height="56dp" android:layout_height="56dp"
android:layout_marginTop="12dp"
android:layout_toRightOf="@id/filter_spinner"
android:contentDescription="@string/configure" android:contentDescription="@string/configure"
android:scaleType="center" android:scaleType="center"
android:src="@drawable/ic_settings_24dp" android:src="@drawable/ic_settings_24dp"
android:visibility="gone" /> android:visibility="gone"/>
</LinearLayout> </RelativeLayout>

View File

@@ -67,7 +67,6 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener; import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.Spinner; import android.widget.Spinner;
@@ -128,6 +127,7 @@ import com.android.settingslib.applications.ApplicationsState.VolumeFilter;
import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource;
import com.android.settingslib.fuelgauge.PowerWhitelistBackend; import com.android.settingslib.fuelgauge.PowerWhitelistBackend;
import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.widget.settingsspinner.SettingsSpinnerAdapter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -757,7 +757,7 @@ public class ManageApplications extends InstrumentedFragment
} }
} }
static class FilterSpinnerAdapter extends ArrayAdapter<CharSequence> { static class FilterSpinnerAdapter extends SettingsSpinnerAdapter<CharSequence> {
private final ManageApplications mManageApplications; private final ManageApplications mManageApplications;
private final Context mContext; private final Context mContext;
@@ -767,10 +767,9 @@ public class ManageApplications extends InstrumentedFragment
private final ArrayList<AppFilterItem> mFilterOptions = new ArrayList<>(); private final ArrayList<AppFilterItem> mFilterOptions = new ArrayList<>();
public FilterSpinnerAdapter(ManageApplications manageApplications) { public FilterSpinnerAdapter(ManageApplications manageApplications) {
super(manageApplications.getContext(), R.layout.filter_spinner_item); super(manageApplications.getContext());
mContext = manageApplications.getContext(); mContext = manageApplications.getContext();
mManageApplications = manageApplications; mManageApplications = manageApplications;
setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
} }
public AppFilterItem getFilter(int position) { public AppFilterItem getFilter(int position) {