我有一个像这样的xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/tabBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#474747"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/BtnSlide"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@null"
android:src="@drawable/lin" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="SteriaFIT Mobile"
android:gravity="center"
android:paddingLeft="12dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<RelativeLayout
android:background="#41413F"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<LinearLayout
android:id="@+id/some_layout_item"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</LinearLayout>
<View
android:layout_below="@id/some_layout_item"
android:layout_width="fill_parent"
android:layout_height="5dip"
android:background="@drawable/drop_shadow">
</View>
<ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wrap_content"
android:background="#FFFFFF" android:cacheColorHint="#FFFFFF">
</ListView>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To Next Activity" />
我只想将此文件中的tabBar
布局放到另一个xml布局文件中,我这样做是通过@+id
这样包含的:
<include android:id="@+id/tabBar" layout="@layout/horz_scroll_app" />
但在我看来,这行代码将包含整个布局文件?
修改
应该提一下,此方法还会为Button
提供身份button1
编辑2
好的,所以将tabBar
放在一个新的布局文件中之后:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#474747"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/BtnSlide"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@null"
android:src="@drawable/lin" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="SteriaFIT Mobile"
android:gravity="center"
android:paddingLeft="12dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
并将其包含在我的原始xml布局中,如下所示:
<include layout="@layout/tab_bar" android:id="@+id/tabBar" />
在我看来,我无法在我的OnClickListener
布局中向ImageButton
注册任何tabBar
。我试图做的事情:
View app = inflater.inflate(R.layout.tab_bar, null);
ViewGroup tabBar = (ViewGroup) app.findViewById(R.id.tabBar);
btnSlide = (ImageButton) tabBar.findViewById(R.id.BtnSlide);
btnSlide.setOnClickListener(new ClickListenerForScrolling(scrollView, menu));
任何人都可以给我一个提示=
答案 0 :(得分:1)
Include用于将整个xml文件包含到当前布局中。如果您只想要tabBar路径,那么将它们放入一个单独的布局文件中,然后将它们包含在原始视图中。
您将正常访问该视图:
LinearLayout tabBar = (LinearLayout) findViewById(R.id.tabBar);
ImageButton btnSlide = (ImageButton) tabBar.findViewById(R.id.BtnSlide);
我相信,将整个视图放在一起的部分是在编译时完成的。因此,您可以按照通常的方式对待xml布局中的视图。
答案 1 :(得分:0)
是的,如果提供的布局文件名是horz_scroll_app,则将整体包含在内。 结帐this post by Romain Guy以获得有关包含的明确说明。