0

質問があります。実行時にフラグメントを追加して配置するために、ConstraintLayoutを使用することができます(すべてのプロパティも同じです)。ConstraintLayoutを使用してフラグメント位置を管理する

私はxmlではなくコードを使用しています。

次のコードは機能しますが、SupportFragmentManagerを使用してフラグメントを配置するだけですが、理論的には、これを使用してConstraintLayoutを使用して位置を変更する方法はわかりませんフラグメントを一番下に(現在、上に行く)。

私の活動onCreateは次のとおりです(それは動作しますが、私が望むやり方ではありません)。

必要に応じて

マイConstraintLayoutのXML(main_activity.xml)は以下の通りです

@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(); 
    } 
} 

<?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> 

あなたが絵の下には見ることができます:

enter image description here

答えて

0

制約を使用する方法を:

ConstraintSet constraintSet = new ConstraintSet(); 

    set.clone(activityLayout); 

    set.connect(ViewObject1, StartSide, ViewObject2, EndSide, Margin) 

    set.applyTo(activityLayout); 

開始値、終了値、オブジェクト値には大域的な定数がありますので、documents hereをチェックアウトする必要があります。

関連する問題