如何设置或删除 android SearchView 顶部和底部填充?
How to set or remove android SearchView top and bottom padding?
我开发了一个 android 应用程序。我在我的应用程序中使用 SearchView。我想自定义 it.But 我不删除它的顶部和底部 padding.When SearchView 的高度递减,文本框 drowned.Flowing 输出视图-
我要-
XML布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<SearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/search_text" />
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
</LinearLayout>
Java代码:
public class SearchViewFilterMode extends Activity implements SearchView.OnQueryTextListener {
private SearchView mSearchView;
private ListView mListView;
private final String[] mStrings = Cheeses.sCheeseStrings;
private ArrayAdapter<String> adaptor;
android.widget.Filter filter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.searchview_filter);
mSearchView = (SearchView) findViewById(R.id.search_view);
mListView = (ListView) findViewById(R.id.list_view);
adaptor=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
mStrings);
filter = adaptor.getFilter();
mListView.setAdapter(adaptor);
mListView.setTextFilterEnabled(false);
setupSearchView();
}
private void setupSearchView() {
mSearchView.setPadding(0, 0, 0, 0);
mSearchView.setPaddingRelative(0, 0, 0, 0);
LinearLayout.LayoutParams seachV = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 75);
seachV.setMargins(5,10, 5, 0);
mSearchView.setLayoutParams(seachV);
mSearchView.setBackgroundResource(R.drawable.search_text);
EditText e = (EditText)mSearchView.findViewById(mSearchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null));
e.setBackgroundResource(R.drawable.search_text);
int searchPlateId = mSearchView.getContext().getResources()
.getIdentifier("android:id/search_plate", null, null);
View searchPlateView = mSearchView.findViewById(searchPlateId);
if (searchPlateView != null) {
searchPlateView.setBackgroundColor(Color.WHITE);
}
mSearchView.setIconifiedByDefault(false);
mSearchView.setOnQueryTextListener(this);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setQueryHint("Search Here");
}
@Override
public boolean onQueryTextChange(String newText) {
filter.filter(newText);
return true;
}
public boolean onQueryTextSubmit(String query) {
return false;
}
}
任何提示和示例都会有所帮助。
你没有解释清楚。您想要自定义 SearchView 布局。这是一个 LinearLayout.You 转到“*\path-to-your-android-sdk-folder\platforms\android-xx\data\res\layout*”并找到 search_view 布局。而 SearchView class 是 here。现在您以编程方式自定义。
我开发了一个 android 应用程序。我在我的应用程序中使用 SearchView。我想自定义 it.But 我不删除它的顶部和底部 padding.When SearchView 的高度递减,文本框 drowned.Flowing 输出视图-
我要-
XML布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<SearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/search_text" />
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
</LinearLayout>
Java代码:
public class SearchViewFilterMode extends Activity implements SearchView.OnQueryTextListener {
private SearchView mSearchView;
private ListView mListView;
private final String[] mStrings = Cheeses.sCheeseStrings;
private ArrayAdapter<String> adaptor;
android.widget.Filter filter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.searchview_filter);
mSearchView = (SearchView) findViewById(R.id.search_view);
mListView = (ListView) findViewById(R.id.list_view);
adaptor=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
mStrings);
filter = adaptor.getFilter();
mListView.setAdapter(adaptor);
mListView.setTextFilterEnabled(false);
setupSearchView();
}
private void setupSearchView() {
mSearchView.setPadding(0, 0, 0, 0);
mSearchView.setPaddingRelative(0, 0, 0, 0);
LinearLayout.LayoutParams seachV = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 75);
seachV.setMargins(5,10, 5, 0);
mSearchView.setLayoutParams(seachV);
mSearchView.setBackgroundResource(R.drawable.search_text);
EditText e = (EditText)mSearchView.findViewById(mSearchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null));
e.setBackgroundResource(R.drawable.search_text);
int searchPlateId = mSearchView.getContext().getResources()
.getIdentifier("android:id/search_plate", null, null);
View searchPlateView = mSearchView.findViewById(searchPlateId);
if (searchPlateView != null) {
searchPlateView.setBackgroundColor(Color.WHITE);
}
mSearchView.setIconifiedByDefault(false);
mSearchView.setOnQueryTextListener(this);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setQueryHint("Search Here");
}
@Override
public boolean onQueryTextChange(String newText) {
filter.filter(newText);
return true;
}
public boolean onQueryTextSubmit(String query) {
return false;
}
}
任何提示和示例都会有所帮助。
你没有解释清楚。您想要自定义 SearchView 布局。这是一个 LinearLayout.You 转到“*\path-to-your-android-sdk-folder\platforms\android-xx\data\res\layout*”并找到 search_view 布局。而 SearchView class 是 here。现在您以编程方式自定义。