
DagobertDokate
Dauer-User
- 137
Ich modernisiere gerade eine App.
Eigentlich beinhaltet dieses gerade nicht so viel
Mein Plan war es:
So leider läuft das bei weitem nicht so einfach und rund wie anfangs von mir gedacht =/
Ich habe folgendes main Layout:
dazu gibt es hier die Main Activity:
und folgendes NavigationDrawer Fragment:
Wenn ich den ActionBarDrawerToggle weg lasse, funktioniert alles so weit wie es soll. Vor allem funktioniert die "HomeAsUp"-Funktion.





Sobald ich den ActionBarDrawerToggle mit dazu nehme, wie im auskommentierten Bereich, fängt der sc****, fu***, ******** ******** ***** *****, äääääääääh ich meinte Käse richtig an zu nerven.
Dabei läuft folgendes schief:
Ich bin am verzweifeln

Hat sich jemand schon mal damit beschäftigt und kann mir tipps geben was ich so falsch mache?^^
lg. Dagobert
Eigentlich beinhaltet dieses gerade nicht so viel
Mein Plan war es:
- ListView im NavigationDrawer gegen ne RecyclerView zu tauschen
- ActionBar gegen Toolbar tauschen (setSupportActionBar)
- ActionBarActivity gegen AppCompactActivity auszutauschen
So leider läuft das bei weitem nicht so einfach und rund wie anfangs von mir gedacht =/
Ich habe folgendes main Layout:
Code:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
app:theme="@style/B.ActionBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize" />
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<!-- The navigation drawer -->
<fragment
android:id="@+id/navigation_drawer"
android:name=".NavigationDrawerFragment"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start"
tools:layout="@layout/fragment_navigation_drawer" />
</android.support.v4.widget.DrawerLayout>
dazu gibt es hier die Main Activity:
Code:
public class MainActivity extends AppCompatActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks {
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mStorageHelper = ((BundesratApplication) getApplication()).getStorageHelper();
setContentView(R.layout.root_content);
final Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
(DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
if (savedInstanceState == null) {
showNews();
getSupportActionBar().setTitle(mTitle);
}
...
}
und folgendes NavigationDrawer Fragment:
Code:
public class NavigationDrawerFragment extends Fragment implements MyAdapter.IMyViewHolderClicks {
private NavigationDrawerCallbacks mCallbacks;
private ActionBarDrawerToggle mDrawerToggle;
private DrawerLayout mDrawerLayout;
private View mFragmentContainerView;
private RecyclerView mRecyclerView;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mCallbacks = (NavigationDrawerCallbacks) activity;
} catch (ClassCastException e) {
throw new ClassCastException("Activity must implement NavigationDrawerCallbacks.");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(
R.layout.fragment_navigation_drawer, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
final MyAdapter adapter = new MyAdapter(this);
mRecyclerView.setAdapter(adapter);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
}
public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) {
mFragmentContainerView = getActivity().findViewById(fragmentId);
mDrawerLayout = drawerLayout;
// mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close);
// mDrawerLayout.setDrawerListener(mDrawerToggle);
// mDrawerLayout.post(new Runnable() {
// @Override
// public void run() {
// mDrawerToggle.syncState();
// }
// });
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
public boolean closeDrawer() {
if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {
mDrawerLayout.closeDrawers();
return true;
}
return false;
}
@Override
public void onClick(int position) {
Log.v(TAG, "onClick()");
if (mDrawerLayout != null) {
mDrawerLayout.closeDrawer(mFragmentContainerView);
}
if (mCallbacks != null) {
mCallbacks.onNavigationDrawerItemSelected(position);
}
}
public interface NavigationDrawerCallbacks {
void onNavigationDrawerItemSelected(int position);
}
}
Wenn ich den ActionBarDrawerToggle weg lasse, funktioniert alles so weit wie es soll. Vor allem funktioniert die "HomeAsUp"-Funktion.






Sobald ich den ActionBarDrawerToggle mit dazu nehme, wie im auskommentierten Bereich, fängt der sc****, fu***, ******** ******** ***** *****, äääääääääh ich meinte Käse richtig an zu nerven.
Dabei läuft folgendes schief:
- HomeAsUp Icon öffnet bei click das Menü und spricht nicht meine onOptionsItemSelected()-Methode an
- Bei getSupportActionBar().setDisplayHomeAsUpEnabled(show); verschwinden oben alle Icons
- Ich kann durch den NavigationDrawer (füllt vertical komplett) den zurückpfeil klicken oO
Ich bin am verzweifeln










Hat sich jemand schon mal damit beschäftigt und kann mir tipps geben was ich so falsch mache?^^
lg. Dagobert