Navigation ich ein einfaches TabLayout bin mit drei verschiedenen Listen von RecyclerViewAdapter in meiner app wie dies gemacht zeigen:Tastatur öffnet sich, wenn in TabLayout
Das Problem ist, dass jedes Mal wenn diese Aktivität geladen wird oder wenn ändern Die Registerkarte, die Tastatur zeigt von selbst.
Hier sind meine verschiedenen Dateien:
MainActivity.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);
}
}
ListFragment.java
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();
}
}
ich hoffe ich habe alles und Dank im Voraus nicht verpassen für jede Hilfe.
Edit:
Hier meine Tätigkeit im Manifest, da vorgeschlagen Wechsel etwas hier
<activity android:name=".MainActivity"
android:theme="@style/Base.Theme.NoTitleBar"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Setzen Sie setSoftInputTouch zu stateHidden in Ihren Stilthemen. Dadurch wird die Autotastatur von Ihrer Anwendung ausgeblendet. –
Gibt es einen 'EditText' in Ihren Fragmenten? –
@MonishKamble Nein, es gibt keinen EditText in meinem XML – Archipel