Android 在表格布局中导航时,键盘打开
我正在使用一个简单的表格来显示我的应用程序中由RecycleServiceAdapter组成的三个不同列表,如下所示: 问题是,每次加载此活动或更改选项卡时,键盘都会自动显示 以下是我的不同文件: MainActivity.javaAndroid 在表格布局中导航时,键盘打开,android,android-tablayout,android-keypad,Android,Android Tablayout,Android Keypad,我正在使用一个简单的表格来显示我的应用程序中由RecycleServiceAdapter组成的三个不同列表,如下所示: 问题是,每次加载此活动或更改选项卡时,键盘都会自动显示 以下是我的不同文件: MainActivity.java private DrawerLayout mDrawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceS
private DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final ActionBar ab = getSupportActionBar();
if (ab != null) {
ab.setHomeAsUpIndicator(R.drawable.ic_menu);
ab.setDisplayHomeAsUpEnabled(true);
}
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
if (navigationView != null) {
setupDrawerContent(navigationView);
}
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
if (viewPager != null) {
setupViewPager(viewPager);
}
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
if (tabLayout != null){
tabLayout.setupWithViewPager(viewPager);
}
//Initializing NavigationView
navigationView = (NavigationView) findViewById(R.id.nav_view);
//Setting Navigation View Item Selected Listener to handle the item click of the navigation menu
if (navigationView != null) {
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
// This method will trigger on item Click of navigation menu
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
//Checking if the item is in checked state or not, if not make it in checked state
if (menuItem.isChecked()) menuItem.setChecked(false);
else menuItem.setChecked(true);
//Closing drawer on item click
mDrawerLayout.closeDrawers();
switch (menuItem.getItemId()) {
// Drawer options
}
});
}
}
/*
@Override
public boolean onCreateOptionsMenu(Menu item) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, item);
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView =
(SearchView) item.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
return true;
}*/
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.options_menu, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (android.widget.SearchView) searchItem.getActionView();
final MenuItem filterItem = menu.findItem(R.id.action_filter);
searchView.setQueryHint(getString(R.string.search_hint));
searchView.setIconified(false);
searchView.onActionViewExpanded();
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
mDrawerLayout.openDrawer(GravityCompat.START);
return true;
}
return super.onOptionsItemSelected(item);
}
private void setupViewPager(ViewPager viewPager) {
Adapter adapter = new Adapter(getSupportFragmentManager());
adapter.addFragment(new ListFragment(), "1");
adapter.addFragment(new ListFragment(), "2");
adapter.addFragment(new ListFragment(), "3");
viewPager.setAdapter(adapter);
}
private void setupDrawerContent(NavigationView navigationView) {
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
mDrawerLayout.closeDrawers();
return true;
}
});
}
static class Adapter extends FragmentPagerAdapter {
private final List<Fragment> mFragments = new ArrayList<>();
private final List<String> mFragmentTitles = new ArrayList<>();
public Adapter(FragmentManager fm) {
super(fm);
}
public void addFragment(Fragment fragment, String title) {
mFragments.add(fragment);
mFragmentTitles.add(title);
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitles.get(position);
}
}
private RecyclerView mRecyclerView;
private PostAdapter mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
getActivity().invalidateOptionsMenu();
}
public int getViewID() {
return R.layout.fragment_post_list;
}
public void bindViews(View v) {
mRecyclerView = (RecyclerView) v.findViewById(R.id.recyclerview);
loadUpdates();
}
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
if (mRecyclerView == null){
return;
}
}
private void loadUpdates() {
showListView(false);
//Gets information from the server and call setAdapter()
}
private void setAdapter() {
if ( ((MainActivity)getActivity()).getPostList() == null) {
Log.i(MainActivity.TAG, "not ready to set Adapter");
return;
}
showListView(true);
mAdapter = new PostAdapter(((MainActivity)getActivity()).getPostList(),this.getContext());
mRecyclerView.setAdapter(mAdapter);
}
private void showListView(boolean show) {
mRecyclerView.setVisibility(show ? View.VISIBLE : View.GONE);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
RecyclerView rv = (RecyclerView) inflater.inflate(
R.layout.fragment_post_list, container, false);
setupRecyclerView(rv);
mRecyclerView = rv;
loadUpdates();
return rv;
}
private void setupRecyclerView(RecyclerView recyclerView) {
recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
}
public static class SimpleStringRecyclerViewAdapter
extends RecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {
private final TypedValue mTypedValue = new TypedValue();
private int mBackground;
private List<String> mValues;
public static class ViewHolder extends RecyclerView.ViewHolder {
public String mBoundString;
public final View mView;
public final TextView mTextView;
public ViewHolder(View view) {
super(view);
mView = view;
mTextView = (TextView) view.findViewById(R.id.post_name);
}
@Override
public String toString() {
return super.toString() + " '" + mTextView.getText();
}
}
public String getValueAt(int position) {
return mValues.get(position);
}
public SimpleStringRecyclerViewAdapter(Context context, List<String> items) {
context.getTheme().resolveAttribute(R.attr.selectableItemBackground, mTypedValue, true);
mBackground = mTypedValue.resourceId;
mValues = items;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
view.setBackgroundResource(mBackground);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.mBoundString = mValues.get(position);
holder.mTextView.setText(mValues.get(position));
}
@Override
public int getItemCount() {
return mValues.size();
}
}
私人抽屉布局mDrawerLayout;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u输入\状态\始终\隐藏);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
最终ActionBar ab=getSupportActionBar();
如果(ab!=null){
ab.setHomeAsUpIndicator(R.drawable.ic_菜单);
ab.setDisplayHomeAsUpEnabled(真);
}
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
if(navigationView!=null){
setupDrawerContent(导航视图);
}
ViewPager ViewPager=(ViewPager)findViewById(R.id.ViewPager);
if(viewPager!=null){
设置viewPager(viewPager);
}
TabLayout TabLayout=(TabLayout)findViewById(R.id.tabs);
if(tabLayout!=null){
tabLayout.setupWithViewPager(viewPager);
}
//初始化NavigationView
navigationView=(navigationView)findViewById(R.id.nav_视图);
//设置导航视图项Selected Listener以处理导航菜单中的项单击
if(navigationView!=null){
navigationView.setNavigationItemSelectedListener(新建navigationView.OnNavigationItemSelectedListener()){
//此方法将在单击导航菜单项时触发
@凌驾
公共布尔值onNavigationItemSelected(MenuItem MenuItem){
//检查项目是否处于选中状态,如果未处于选中状态,则使其处于选中状态
如果(menuItem.isChecked())menuItem.setChecked(false);
else menuItem.setChecked(true);
//按项目关闭抽屉
mDrawerLayout.closeDrawers();
开关(menuItem.getItemId()){
//抽屉选项
}
});
}
}
/*
@凌驾
公共布尔onCreateOptions菜单(菜单项){
MenuInflater充气机=getMenuInflater();
充气机。充气(右菜单。选项菜单,项目);
搜索管理器搜索管理器=
(SearchManager)getSystemService(Context.SEARCH\u服务);
搜索视图搜索视图=
(SearchView)item.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(
getSearchableInfo(getComponentName());
返回true;
}*/
@凌驾
公共布尔onCreateOptions菜单(最终菜单){
getMenuInflater().充气(R.menu.options\u菜单,菜单);
final MenuItem searchItem=menu.findItem(R.id.action\u search);
SearchView SearchView=(android.widget.SearchView)searchItem.getActionView();
final MenuItem filterItem=menu.findItem(R.id.action\u filter);
setQueryHint(getString(R.string.search_hint));
searchView.setIconified(false);
searchView.onActionViewExpanded();
返回super.onCreateOptions菜单(菜单);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例android.R.id.home:
mDrawerLayout.openDrawer(重力compat.START);
返回true;
}
返回super.onOptionsItemSelected(项目);
}
专用无效设置ViewPager(ViewPager ViewPager){
适配器适配器=新适配器(getSupportFragmentManager());
addFragment(新的ListFragment(),“1”);
addFragment(新的ListFragment(),“2”);
addFragment(新的ListFragment(),“3”);
viewPager.setAdapter(适配器);
}
私有void setupDrawerContent(导航视图导航视图){
navigationView.setNavigationItemSelectedListener(
新建NavigationView.OnNavigationItemSelectedListener(){
@凌驾
公共布尔值onNavigationItemSelected(MenuItem MenuItem){
menuItem.setChecked(true);
mDrawerLayout.closeDrawers();
返回true;
}
});
}
静态类适配器扩展FragmentPagerAdapter{
私有最终列表MFFragments=new ArrayList();
私有最终列表MFFragmentTitles=new ArrayList();
公共适配器(FragmentManager fm){
超级(fm);
}
public void addFragment(片段片段,字符串标题){
添加(片段);
MFFragmentTitles.add(标题);
}
@凌驾
公共片段getItem(int位置){
返回mFragments.get(位置);
}
@凌驾
public int getCount(){
返回mffragments.size();
}
@凌驾
公共字符序列getPageTitle(int位置){
返回MFFragmentTitles.get(位置);
}
}
ListFragment.java
private DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final ActionBar ab = getSupportActionBar();
if (ab != null) {
ab.setHomeAsUpIndicator(R.drawable.ic_menu);
ab.setDisplayHomeAsUpEnabled(true);
}
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
if (navigationView != null) {
setupDrawerContent(navigationView);
}
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
if (viewPager != null) {
setupViewPager(viewPager);
}
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
if (tabLayout != null){
tabLayout.setupWithViewPager(viewPager);
}
//Initializing NavigationView
navigationView = (NavigationView) findViewById(R.id.nav_view);
//Setting Navigation View Item Selected Listener to handle the item click of the navigation menu
if (navigationView != null) {
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
// This method will trigger on item Click of navigation menu
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
//Checking if the item is in checked state or not, if not make it in checked state
if (menuItem.isChecked()) menuItem.setChecked(false);
else menuItem.setChecked(true);
//Closing drawer on item click
mDrawerLayout.closeDrawers();
switch (menuItem.getItemId()) {
// Drawer options
}
});
}
}
/*
@Override
public boolean onCreateOptionsMenu(Menu item) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, item);
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView =
(SearchView) item.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
return true;
}*/
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.options_menu, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (android.widget.SearchView) searchItem.getActionView();
final MenuItem filterItem = menu.findItem(R.id.action_filter);
searchView.setQueryHint(getString(R.string.search_hint));
searchView.setIconified(false);
searchView.onActionViewExpanded();
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
mDrawerLayout.openDrawer(GravityCompat.START);
return true;
}
return super.onOptionsItemSelected(item);
}
private void setupViewPager(ViewPager viewPager) {
Adapter adapter = new Adapter(getSupportFragmentManager());
adapter.addFragment(new ListFragment(), "1");
adapter.addFragment(new ListFragment(), "2");
adapter.addFragment(new ListFragment(), "3");
viewPager.setAdapter(adapter);
}
private void setupDrawerContent(NavigationView navigationView) {
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
mDrawerLayout.closeDrawers();
return true;
}
});
}
static class Adapter extends FragmentPagerAdapter {
private final List<Fragment> mFragments = new ArrayList<>();
private final List<String> mFragmentTitles = new ArrayList<>();
public Adapter(FragmentManager fm) {
super(fm);
}
public void addFragment(Fragment fragment, String title) {
mFragments.add(fragment);
mFragmentTitles.add(title);
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitles.get(position);
}
}
private RecyclerView mRecyclerView;
private PostAdapter mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
getActivity().invalidateOptionsMenu();
}
public int getViewID() {
return R.layout.fragment_post_list;
}
public void bindViews(View v) {
mRecyclerView = (RecyclerView) v.findViewById(R.id.recyclerview);
loadUpdates();
}
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
if (mRecyclerView == null){
return;
}
}
private void loadUpdates() {
showListView(false);
//Gets information from the server and call setAdapter()
}
private void setAdapter() {
if ( ((MainActivity)getActivity()).getPostList() == null) {
Log.i(MainActivity.TAG, "not ready to set Adapter");
return;
}
showListView(true);
mAdapter = new PostAdapter(((MainActivity)getActivity()).getPostList(),this.getContext());
mRecyclerView.setAdapter(mAdapter);
}
private void showListView(boolean show) {
mRecyclerView.setVisibility(show ? View.VISIBLE : View.GONE);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
RecyclerView rv = (RecyclerView) inflater.inflate(
R.layout.fragment_post_list, container, false);
setupRecyclerView(rv);
mRecyclerView = rv;
loadUpdates();
return rv;
}
private void setupRecyclerView(RecyclerView recyclerView) {
recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
}
public static class SimpleStringRecyclerViewAdapter
extends RecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {
private final TypedValue mTypedValue = new TypedValue();
private int mBackground;
private List<String> mValues;
public static class ViewHolder extends RecyclerView.ViewHolder {
public String mBoundString;
public final View mView;
public final TextView mTextView;
public ViewHolder(View view) {
super(view);
mView = view;
mTextView = (TextView) view.findViewById(R.id.post_name);
}
@Override
public String toString() {
return super.toString() + " '" + mTextView.getText();
}
}
public String getValueAt(int position) {
return mValues.get(position);
}
public SimpleStringRecyclerViewAdapter(Context context, List<String> items) {
context.getTheme().resolveAttribute(R.attr.selectableItemBackground, mTypedValue, true);
mBackground = mTypedValue.resourceId;
mValues = items;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
view.setBackgroundResource(mBackground);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.mBoundString = mValues.get(position);
holder.mTextView.setText(mValues.get(position));
}
@Override
public int getItemCount() {
return mValues.size();
}
}
private RecyclerView mRecyclerView;
私人邮政适配器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
设置选项菜单(真);
getActivity().InvalidateOptions菜单();
}
public int getViewID(){
返回R.layout.fragment\u post\u列表;
}
公共视图(视图v){
mRecyclerView=(RecyclerView)v.findViewById(R.id.RecyclerView);
loadUpdates();
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
if(mRecyclerView==null){
返回;
}
}
私有void loadUpdates(){
showListView(假);
//从服务器获取信息并调用setAdapter()
}
私有void setAdapter(){
if(((MainActivity)getActivity()).getPostList()==null){
Log.i(MainActivity.TAG,“未准备好设置适配器”);
返回;
}
showListView(真)
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputMethodManager != null)
inputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), 0);