我正在使用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>
&#13;
答案 0 :(得分:0)
您可以使用替换片段
OnClickListener中的
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction()
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.replace(R.id.content_main, new TargetFragment())
.commit();
并在
更改yourxml <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>
要
<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;
}
答案 1 :(得分:0)
更好更简单的方法是使用碎片。但是,如果您不想使用片段,那么您可以将活动的所有视图放在某个单独的相对或线性布局中,无论您喜欢哪个并使用隐藏显示视图每次点击。
答案 2 :(得分:0)
The easy way is to use fragments. Fragments are designed to be reusable UI layouts. But if you don't want to use fragments, you can create CustomView and use addView
, removeView
like example:
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);