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

View File

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