2016-04-15 62 views
0

我正在使用Android Studio進行開發。 我創建了一個屏幕,其側面有按鈕,因此看起來像菜單欄。 我想讓左側(紅色側)佈局可變 - 意味着如果我點擊右側(綠色側)的圖像之一,左側佈局將更改爲不同的佈局,並將打開不同的活動。 我已經有了要使用右側可點擊圖片在左側展示的活動和佈局。 我可以使它不使用碎片嗎?在不使用分段的情況下在相同佈局中更改屏幕

the "menu" i have and how i want it to work

佈局:

<?xml version="1.0" encoding="utf-8"?> 
 

 

 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    android:orientation="horizontal" 
 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
 
    android:background="@drawable/ightwall" 
 
    android:id="@+id/drawerlayout" 
 
    android:weightSum="1" 
 
    > 
 

 
    <ScrollView 
 
     android:layout_width="0dp" 
 
     android:layout_height="match_parent" 
 
     android:layout_gravity="left" 
 
     android:layout_weight=".7"> 
 

 
     <LinearLayout 
 
      android:layout_width="match_parent" 
 
      android:layout_height="match_parent" 
 
      android:orientation="vertical"> 
 

 
      <TextView 
 
       android:layout_width="match_parent" 
 
       android:layout_height="wrap_content" 
 
       android:text="My List" 
 

 
       android:textAlignment="center" 
 
       android:textSize="20dp" 
 
       android:textStyle="bold" /> 
 

 
     </LinearLayout> 
 

 
    </ScrollView> 
 

 
    <LinearLayout 
 
     android:layout_width="0dp" 
 
     android:layout_height="match_parent" 
 
     android:orientation="vertical" 
 
     android:background="#D5D4D4" 
 
     android:layout_gravity="right" 
 
     android:layout_weight=".3"> 
 

 
     <ImageView 
 
      android:id="@+id/mylist" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content" 
 
      android:padding="3dp" 
 
      android:src="@drawable/createlist_mylist" 
 
      android:adjustViewBounds="true" 
 
      android:maxHeight="100dp" 
 
      android:maxWidth="100dp" 
 
      android:layout_gravity="center" /> 
 

 
     <ImageView 
 
      android:id="@+id/freeadd" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content" 
 
      android:padding="3dp" 
 
      android:src="@drawable/createlist_freetext" 
 
      android:adjustViewBounds="true" 
 
      android:maxHeight="100dp" 
 
      android:maxWidth="100dp" 
 
      android:layout_gravity="center" /> 
 

 
     <ImageView 
 
      android:id="@+id/categoryadd" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content" 
 
      android:padding="3dp" 
 
      android:src="@drawable/createlist_categorysearch" 
 
      android:adjustViewBounds="true" 
 
      android:maxHeight="100dp" 
 
      android:maxWidth="100dp" 
 
      android:layout_gravity="center" /> 
 

 
     <ImageView 
 
      android:id="@+id/favproductadd" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content" 
 
      android:padding="3dp" 
 
      android:src="@drawable/createlist_favproduct" 
 
      android:adjustViewBounds="true" 
 
      android:maxHeight="100dp" 
 
      android:maxWidth="100dp" 
 
      android:layout_gravity="center" /> 
 

 

 

 
    </LinearLayout> 
 
</LinearLayout>

回答

0

您可以使用替換片段

在OnClickListener

FragmentManager manager = getSupportFragmentManager(); 
    manager.beginTransaction() 
      .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) 
      .replace(R.id.content_main, new TargetFragment()) 
      .commit(); 

而在

<ScrollView 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="left" 
    android:layout_weight=".7"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="My List" 

      android:textAlignment="center" 
      android:textSize="20dp" 
      android:textStyle="bold" /> 

    </LinearLayout> 

</ScrollView> 

更改yourxml要

<ScrollView 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="left" 
    android:layout_weight=".7"> 

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

    </FrameLayout> 

</ScrollView> 

創建類TargetFragment.class

import android.support.v4.app.Fragment; 
public class TargetFragment extends Fragment { 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View root = inflater.inflate(R.layout.target_fragment_xml, container, false); 

// Enter code here 
return root; 
} 
+0

從標題,我相信他不希望使用片段 – Ricardo

+0

我試圖改變一切成片段現在...看看它會工作..我有一個問題 - 什麼佈局target_fragment_xml應該包含? –

+0

另一個問題是在OnClickListener中有一個:.replace(R.id.content_main ............我在這裏做什麼 - 替換什麼和什麼?我將不勝感激關於該做的解釋,謝謝!:) –

0

更好的和簡單的方法是用碎片。然而,如果你不想使用片段,那麼你可以在你的活動的xml中以一些獨立的相對或線性佈局來獲取所有視圖,無論你喜歡什麼,並且每次點擊都可以使用隱藏展示視圖。

0

簡單的方法是使用片段。碎片被設計成可重複使用的UI佈局。但是,如果你不想使用片段,您可以創建CustomView和使用addViewremoveView像例如:

LinearLayout layout=new LinearLayout(context); 
layout.addView(new Button(context)); 
layout.addView(new ImageButton(context)); 

TextView view = new TextView(context); 
view.setText("Hello World"); 
layout.addView(view); 

layout.removeView(view); 
相關問題