Android:片段添加在子视图下方

时间:2016-11-06 17:46:39

标签: android

我有FrameLayoutbuttons,有些ImageViews。当我添加一个片段时,它会按预期显示在ImageViews之上但在buttons之下,但我不知道为什么。

我搜索了很多SO帖子,但找不到与我类似的问题。 我有一个添加片段的自定义onClickListener 自定义clickListener类:

public void onClick(View v) {
    // a context is passed to the listener 
    // this gets rootview id
    int id= ((ViewGroup)((Activity)context).getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0).getId();
    MyFragment myFragment = new MyFragment();
    FragmentTransaction ft = ((Activity) context).getFragmentManager().beginTransaction();
    ft.add(id, myFragment, "F1");
    ft.commit();
}

视图我将片段添加到:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/startscreen"
>
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/gamelogo"
        android:id="@+id/logo"
        android:scaleType="fitStart"
        android:adjustViewBounds="true"
    />
</FrameLayout>

的活动:

protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.startmenu);
    final FrameLayout r = (FrameLayout) findViewById(R.id.startscreen);
    addViews(r);
}
public void addViews(FrameLayout r){
    // add some buttons to r
    // add custom OnClickListener to one of the buttons
    // add some ImageViews
    // add animation to one button
}

2 个答案:

答案 0 :(得分:0)

  

FrameLayout旨在阻挡屏幕上的某个区域以显示单个项目。通常,FrameLayout应该用于保存单个子视图,因为很难以可扩展到不同屏幕大小的方式组织子视图而不会让孩子彼此重叠。

那是来自文档,您是否考虑过更改布局?

答案 1 :(得分:0)

我想我必须将片段添加到基础FrameLayout的父级。我不知道为什么我不得不这样做。