Android是否有母版页概念,比如Struts中的.NET或Tiles概念,以便在所有页面上添加标题?
我正在开发一个Android应用程序。在这个应用程序中,徽标栏显示在所有页面(活动)上,或者我们可以说它在所有页面上都有标题。 这个标志栏有几个图标,如主页、登录、通知等,点击这些图标就会执行相应的导航 例如,如果用户在应用程序中的任何位置并单击主页图标,他将导航到应用程序的主页 我能够通过编码将logobar.XML膨胀到我的所有活动中。但问题是我必须在所有页面上调用onClickListener来查找徽标栏中的所有图标。 这不是一种好的编程方式。 如何在不重复代码的情况下在所有其他活动中实现徽标栏活动? android有没有像.Net那样的母版页概念,或者像Struts那样的tiles概念Android是否有母版页概念,比如Struts中的.NET或Tiles概念,以便在所有页面上添加标题?,android,android-layout,Android,Android Layout,我正在开发一个Android应用程序。在这个应用程序中,徽标栏显示在所有页面(活动)上,或者我们可以说它在所有页面上都有标题。 这个标志栏有几个图标,如主页、登录、通知等,点击这些图标就会执行相应的导航 例如,如果用户在应用程序中的任何位置并单击主页图标,他将导航到应用程序的主页 我能够通过编码将logobar.XML膨胀到我的所有活动中。但问题是我必须在所有页面上调用onClickListener来查找徽标栏中的所有图标。 这不是一种好的编程方式。 如何在不重复代码的情况下在所有其他活动中实现
请引导我 编辑:好的,我知道了。也许他会帮助你
尝试将Tab小部件与tabactivity一起使用检查此链接,了解android的fragment和Tab用法。我认为对于较低版本,我们也可以使用这个。这就是链接所说的“您可以使用v4支持库,它提供了一个版本的片段API,兼容到甜甜圈。”您必须用xml创建主布局,并且必须将其包含在其他应用程序中
您必须拥有它的布局。有类似的布局,但仅在api 11+(3.2和Android 4.0.x冰淇淋三明治)上可用。它叫做actionbar()。我使用XML文件完成了这项工作 我只是从XML文件创建运行时视图,并将其添加到活动布局中 我已经为此创建了一个方法
public static void setLoginview(Context ctx, RelativeLayout layout) {
LayoutInflater linflater = (LayoutInflater) ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View myView = linflater.inflate(R.layout.loginheader, null);
layout.addView(myView);
try {
layout.getChildAt(0).setPadding(0, 50, 0, 0);
} catch (Exception e) {
}
}
ctx是应用程序contetx,layout是我想添加该视图的布局。解决方案非常简单 您需要将onCreate函数SetContentView中的“Activity”类扩展到基本xml布局,还需要覆盖基本Activity类中的SetContentView 例如: 1.使用以下代码创建“base_layout.xml”
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#000000"
android:padding="15dp" >
<LinearLayout android:orientation="horizontal" android:background="#000000"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:minHeight="50dp" android:paddingLeft="10dp">
<ImageView android:layout_width="wrap_content" android:id="@+id/ImageView01"
android:adjustViewBounds="true" android:layout_height="wrap_content"
android:scaleType="fitCenter" android:maxHeight="50dp" />
</LinearLayout>
<LinearLayout android:id="@+id/linBase"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</LinearLayout>
</LinearLayout>
及
到目前为止,我注意到的唯一一件事是,当请求进度条(requestWindowFeature(Window.FEATURE\u undeterminate\u progress))时,这需要在调用super.onCreate之前完成。我认为这是因为在调用这个函数之前还不能绘制任何东西
这对我来说非常有用,希望您能在自己的编码中发现这一点。谢谢您的回复,但选项卡布局并不能解决我的问题。我想使用我的标识栏作为标题栏或标题栏,而不是像标识栏上每个图标的不同选项卡一样。这应该提供标题而不是选项卡的外观。我正在使用android 2.1汉克斯AnDro开发我的应用程序。我认为这是我想要的,并且应该在我的应用程序中工作。是的,我正在这样做,但问题是如何在其他活动中使用主布局活动的所有功能(如在徽标栏的每个图标上单击事件),其中我包括主布局而不重复代码。目前,我必须对每页上的每个图标重复OnClickListener。@MANOJAGARWAL,因为您已经包含了布局,然后从该布局中按id查找视图并应用事件列表器。这很好。我已经在使用这种方法。但这种方法在所有页面上重复相同的代码,因为我的徽标栏被放置在所有页面中。我想要一种避免重复的方法,我只是在其他活动中调用我的母版页活动。super.onCreate(savedInstanceState);setContentView(R.layout.activity2);页脚=(页脚)findViewById(R.id.layoutFooter);footer.setActivity(此);
public class BaseActivity extends Activity {
ImageView image;
LinearLayout linBase;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.base_layout);
image = (ImageView)findViewById(R.id.ImageView01);
image.setImageResource(R.drawable.header);
linBase = (LinearLayout)findViewById(R.id.linBase);
}
@Override
public void setContentView(int id) {
LayoutInflater inflater = (LayoutInflater)getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(id, linBase);
}
}
public class SomeActivity extends BaseActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.some_layout);
//rest of code
}
}