0

맥주 목록이 있습니다. 내 주요 활동은 입니다. MainActivity입니다. 그 중 하나를 클릭 할 때마다 맥주 정보를 보여주는 새로운 화면을 표시하려고합니다.조각 만 표시하는 방법

내 목록이 어떻게 표시되며 내 조각을 만들기 위해 실행되는 코드입니다.

enter image description here

@Override 
    public void onClick(View view) { 

     // Data to send to fragment 
     Beer beer = displayedList.get(getAdapterPosition()); 
     Bundle bundle = new Bundle(); 
     bundle.putParcelable("Beer", beer); 
     bundle.putParcelableArrayList("BeerList", (ArrayList<? extends Parcelable>) beerList); 

     // Begin the transaction 
     FragmentTransaction ft = context.getSupportFragmentManager().beginTransaction(); 
     // Replace the contents of the container with the new fragment 
     BeerInfoFragment beerInfoFragment = new BeerInfoFragment(); 
     beerInfoFragment.setArguments(bundle); 
     ft.replace(R.id.frame_layout, beerInfoFragment); 
     // or ft.add(R.id.your_placeholder, new FooFragment()); 
     // Complete the changes added above 
     ft.commit(); 
    } 
} 

그러나, 대신 새 화면에 맥주의 정보를 표시하는, 내가 동시에 두 레이아웃을 가지고 :

enter image description here

질문 : 어떻게 할 수 두 가지 대신 단편 레이아웃 만 표시하도록 하시겠습니까?

이 내 MainActivity 레이아웃이 같은 모습입니다 :

<android.support.v7.widget.RecyclerView 
    android:id="@+id/recycler_view" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:scrollbars="vertical" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintStart_toStartOf="parent" 
    app:layout_constraintTop_toTopOf="parent" /> 

<FrameLayout 
    android:id="@+id/frame_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
</FrameLayout> 
+0

두 조각이 필요합니다. 첫 번째 것은 목록을 표시하고 두 번째 것은 이미 가지고 있음 –

+0

조각 레이아웃에 배경색을 추가하려고 했습니까? –

+0

@Pavneet_Singh 그 것에 대해 검색해 보겠습니다. AlbertoMéndez 여전히 목록 스크롤바를 사용하여 스크롤 할 수 있습니다. MainActivity 레이아웃을 숨길 수 있더라도 하나의 레이아웃 만 표시하고 싶습니다. – deko

답변

1

두 조각이 있어야합니다.

  1. BeerListFragment이 조각은 당신이 맥주의 목록을 표시 recyclerview있을 것이다.
  2. BeerInfoFragment :이 조각에는 클릭되거나 선택된 맥주 항목의 세부 정보가 표시됩니다.

이제 MainActivity를 시작하면 BeerListFragment가 컨테이너에 추가됩니다. 항목의 클릭을 캡처하고 처리 한 후 질문에서 언급 한 BeerInfoFragment를 엽니 다.

0
public class YourFragment extends Fragment 
{ 
String selectedBeer; 
String beerQuality ; 
String beerColor; 
String beerCost; 
String beerDetails; 
..... 

public void getSelectedBeer(String selectedBeer) 
{ 
this.selectedBeer=selectedBeer; 
} 
} 

당신이 조각 레이아웃을 공급한다

YourFragment yourFragment=new YourFragment(); 
yourFragment.getSelectedBeer(myBeer); 
     getFragmentManager().beginTransaction().replace(R.id.frame_layout,yourFragment,"FragmentName").commit(); 
활동에 선택한 항목 맥주에 따라 달라집니다. sqlite 또는 서버에서 데이터를 가져 와서 선택한 맥주에 따라 조각에 배치 할 수 있습니다.

+0

여기에 조각의 이유는 없습니다. 새로운 활동에 맥주 정보를 표시 할 수 있습니다. – user1209216

+0

편집보기 .. 사용자 친화적 인 앱을 만들기 위해 조각을 사용해야합니다. –

+0

@ user1209216, 나는 Fragment 대신 Activity를 사용 했었지만, Child Activity의 MainActivity 메소드에 액세스해야하고 Fragment를 사용하여 getActivity()를 호출해야했습니다. – deko

관련 문제