如何在不同的 Activity 中使用相同的 LinearLayout
How To Use Same LinearLayout In Different Activities
我想在不同的活动中使用相同的 LinearLayout。图片中选中的LinearLayout的id为previewLinear。我想要做的是,在不同的 activity 中使用 previewLinear。我有 A 和 B 活动。首先,我以编程方式对 activity A 中的 previewLinear 进行了一些更改(添加边框,将其切成碎片等),我想将整个 previewLinear 复制到 B activity.
pencerebol.xml
我试过的是;
A Activity: (容器是静态的)
...
setContentView(R.layout.pencerebol);
...
container = (LinearLayout) findViewById(R.id.previewLinear);
container.setBackground(getResources().getDrawable(R.drawable.border));
乙Activity:
...
setContentView(R.layout.pencerebol);
container = (LinearLayout) findViewById (R.id.previewLinear);
container = A.container; // I know that this line is completely wrong but this is what i want to do.
谢谢指教。
如果我没猜错,你想使 B activity 中的 LinearLayout 看起来与 A activity 中的相同。
您可以在 A 中创建方法 activity
static void createLinearLayout(LinearLayout layout){
layout.setBackground(getResources().getDrawable(R.drawable.border));
...
}
然后在B中调用activity
A.createLinearLayout(container);
您可以在 XML 文件中使用 <include>
属性,您只需创建一个布局并将其包含在另一个 activities/fragments 中,这是一个示例那:
为您的 previewLinear 布局创建一个 xml,将其命名为:
layout_preview_linear.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/previewLinear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
然后在您的 activity A 或 B 中,您可以将其包含如下:
activity_a.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_a_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/previewLayout"
layout="@layout/layout_preview_linear"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
您也可以在 JAVA 代码中使用该布局,希望这对您有所帮助。
我想在不同的活动中使用相同的 LinearLayout。图片中选中的LinearLayout的id为previewLinear。我想要做的是,在不同的 activity 中使用 previewLinear。我有 A 和 B 活动。首先,我以编程方式对 activity A 中的 previewLinear 进行了一些更改(添加边框,将其切成碎片等),我想将整个 previewLinear 复制到 B activity.
pencerebol.xml
我试过的是;
A Activity: (容器是静态的)
...
setContentView(R.layout.pencerebol);
...
container = (LinearLayout) findViewById(R.id.previewLinear);
container.setBackground(getResources().getDrawable(R.drawable.border));
乙Activity:
...
setContentView(R.layout.pencerebol);
container = (LinearLayout) findViewById (R.id.previewLinear);
container = A.container; // I know that this line is completely wrong but this is what i want to do.
谢谢指教。
如果我没猜错,你想使 B activity 中的 LinearLayout 看起来与 A activity 中的相同。
您可以在 A 中创建方法 activity
static void createLinearLayout(LinearLayout layout){
layout.setBackground(getResources().getDrawable(R.drawable.border));
...
}
然后在B中调用activity
A.createLinearLayout(container);
您可以在 XML 文件中使用 <include>
属性,您只需创建一个布局并将其包含在另一个 activities/fragments 中,这是一个示例那:
为您的 previewLinear 布局创建一个 xml,将其命名为:
layout_preview_linear.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/previewLinear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
然后在您的 activity A 或 B 中,您可以将其包含如下:
activity_a.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_a_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/previewLayout"
layout="@layout/layout_preview_linear"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
您也可以在 JAVA 代码中使用该布局,希望这对您有所帮助。