定位特定视图

时间:2016-02-04 17:12:04

标签: android view android-framelayout viewgroup

我正在使用frameLayout并将其添加到已包含列表视图的视图组中。现在出现的问题是框架视图是底部。我想让它落到最底层。

这是我的代码:

public void addToView(ViewGroup view){
    view.addOnLayoutChangeListener(layoutChangeListener);

     frameParams = new FrameLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT
    );


    removeAllViews();
    View v = makeControllerView();
    view.addView(v, frameParams);
}

1 个答案:

答案 0 :(得分:0)

你需要这样的东西

<RelativeLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView (or android.support.v7.widget.RecyclerView)
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

然后添加视图执行类似

的操作
RelativeLayout container = (RelativeLayout) findViewById(R.id.container);

int vId = 1234;
View v = makeControllerView();
v.setId(vId);
RelativeLayout.LayoutParams vParams = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
vParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
container.addView(v, vParams);

RelativeLayout.LayoutParams lvParams = 
        (RelativeLayout.LayoutParams) container.getLayoutParams();
lvParams.addRule(RelativeLayout.ABOVE, vId);
ListView lv = (ListView) findViewById(R.id.listview);
lv.setLayoutParams(lvParams);

我没有对此进行测试,也不知道它是否有效,但它只是让您了解如何处理它。 这不是我将如何处理,如果我知道在这种情况下可能会添加视图,我只需将视图添加到xml的布局并处理它的可见性。这是你问过的。