Android ...我可以在1个选项卡上有2个片段,没有它们重叠吗?

时间:2014-04-17 03:16:58

标签: android tabs actionbarsherlock fragment

我正在使用actionbarsherlock创建一个包含标签的应用,其中包含每个标签的列表。我希望所有标签上的列表底部都有一个admob广告。我已经接近工作,但片段重叠而不是在广告上方列出。这是代码:

public void onTabSelected(Tab tab, FragmentTransaction ft) {

    ListFragment = new FragmentTab1();
    ft.add(android.R.id.content, ListFragment);
    ft.attach(mFragment);

    Fragment adfragment = new AdFragment();
    ft.add(android.R.id.content, adfragment);
    ft.attach(adfragment);
}

这几乎就像我想在将两个片段添加到事务中之前将它们连接起来,但我无法弄明白。

2 个答案:

答案 0 :(得分:1)

您需要创建一个包含两个FrameLayout的自定义布局。因此,Ads位于底部且高度固定,ListView Fragment将使用剩余高度。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" 
android:layout_width="match_parent"
android:layout_height="match_parent">

<FrameLayout
    android:id="@+id/list_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/Red"
    android:layout_weight="1"/>

<FrameLayout
    android:id="@+id/ads_container"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:background="@color/Yellow"/>
</LinearLayout>

并将Fragments添加到每个FrameLayout,就像这样

ListFragment = new FragmentTab1();
ft.add(R.id.list_container, ListFragment);
ft.attach(mFragment);

Fragment adfragment = new AdFragment();
ft.add(R.id.ads_container, adfragment);
ft.attach(adfragment);

答案 1 :(得分:-1)