master details flow for tablet
This commit is contained in:
@@ -4,19 +4,27 @@ import android.os.Bundle;
|
|||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import net.headlezz.udacityproject1.movielist.MovieListFragment;
|
import net.headlezz.udacityproject1.movielist.MovieListFragment;
|
||||||
import net.headlezz.udacityproject1.tmdbapi.Movie;
|
import net.headlezz.udacityproject1.tmdbapi.Movie;
|
||||||
|
|
||||||
|
import butterknife.Bind;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main activity is mainly for handling fragment transactions
|
* Main activity is mainly for handling fragment transactions
|
||||||
*/
|
*/
|
||||||
public class MainActivity extends AppCompatActivity implements MovieNavigation, FragmentManager.OnBackStackChangedListener {
|
public class MainActivity extends AppCompatActivity implements MovieNavigation, FragmentManager.OnBackStackChangedListener {
|
||||||
|
|
||||||
|
@Bind(R.id.main_details_placeHolderText) TextView detailsPlaceholderView;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
ButterKnife.bind(this);
|
||||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
setTitle(getString(R.string.app_name));
|
setTitle(getString(R.string.app_name));
|
||||||
@@ -38,8 +46,11 @@ public class MainActivity extends AppCompatActivity implements MovieNavigation,
|
|||||||
*/
|
*/
|
||||||
public void showDetailsFragment(Movie movie) {
|
public void showDetailsFragment(Movie movie) {
|
||||||
MovieDetailsFragment frag = MovieDetailsFragment.newInstance(movie);
|
MovieDetailsFragment frag = MovieDetailsFragment.newInstance(movie);
|
||||||
|
int holderId = getResources().getBoolean(R.bool.master_detail) ? R.id.fragmentHolderDetails : R.id.fragmentHolder;
|
||||||
|
if(detailsPlaceholderView != null)
|
||||||
|
detailsPlaceholderView.setVisibility(View.GONE);
|
||||||
getSupportFragmentManager().beginTransaction()
|
getSupportFragmentManager().beginTransaction()
|
||||||
.replace(R.id.fragmentHolder, frag)
|
.replace(holderId, frag)
|
||||||
.addToBackStack(MovieDetailsFragment.TAG)
|
.addToBackStack(MovieDetailsFragment.TAG)
|
||||||
.commit();
|
.commit();
|
||||||
}
|
}
|
||||||
|
|||||||
45
app/src/main/res/layout-sw600dp-land/activity_main.xml
Normal file
45
app/src/main/res/layout-sw600dp-land/activity_main.xml
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context=".MainActivity"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
|
||||||
|
android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
|
||||||
|
android:background="?attr/colorPrimary"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:id="@+id/fragmentHolder"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:id="@+id/fragmentHolderDetails"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/main_details_placeHolderText"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||||
|
android:text="Please select a movie"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
3
app/src/main/res/values-sw600dp-land/dimens.xml
Normal file
3
app/src/main/res/values-sw600dp-land/dimens.xml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<resources>
|
||||||
|
<bool name="master_detail">true</bool>
|
||||||
|
</resources>
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
|
|
||||||
(such as screen margins) for screens with more than 820dp of available width. This
|
|
||||||
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
|
|
||||||
<dimen name="activity_horizontal_margin">64dp</dimen>
|
|
||||||
</resources>
|
|
||||||
@@ -3,4 +3,5 @@
|
|||||||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||||
<dimen name="fab_margin">16dp</dimen>
|
<dimen name="fab_margin">16dp</dimen>
|
||||||
|
<bool name="master_detail">false</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user