我有一个问题,我想要做的是使用我拥有的ConstraintLayout(它的所有属性)在执行时添加和定位片段。
我希望使用代码而不是通过xml。
到目前为止,以下代码可以正常工作,但它唯一能做的就是通过SupportFragmentManager放置片段,但我不知道如何使用ConstraintLayout修改它的位置,因为从理论上讲,我可以用它来定位我的片段到底(目前,它是最重要的)。
我的活动onCreate如下(它有效,但不是我想要的方式)。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//TODO use constraintLayout to manage fragment position (ask)
ConstraintLayout activityLayout = (ConstraintLayout) findViewById(R.id.main_app_container);
if (activityLayout != null){
if (savedInstanceState != null) {
return;
}
TabFragment tabFragment = TabFragment.newInstance();
tabFragment.setArguments(getIntent().getExtras());
getSupportFragmentManager()
.beginTransaction()
.add(R.id.main_app_container, tabFragment)
.commit();
}
}
如果需要,我的ConstraintLayout xml(main_activity.xml)如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_app_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.xdxdxdxd.android.xdxdxdxd.MainActivity"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="0dp">
</android.support.constraint.ConstraintLayout>
你可以看到下图:
答案 0 :(得分:0)
使用约束的方式:
ConstraintSet constraintSet = new ConstraintSet();
set.clone(activityLayout);
set.connect(ViewObject1, StartSide, ViewObject2, EndSide, Margin)
set.applyTo(activityLayout);
开始,结束和对象值有很多全局常量,你应该看看documents here。