0

我是約束佈局的新手,很難弄清楚如何以編程方式創建它。如何以編程方式創建約束佈局

這裏是我的XML代碼吧:

<RelativeLayout 
     android:id="@+id/ShareContainer" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_marginTop="0dp" 
     android:layout_marginBottom="0dp" 
     app:layout_constraintDimensionRatio="16:9" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/StatusContainer" 
     app:layout_constraintBottom_toTopOf="@+id/ButtonContainer"> 

     <com.myapp.ui.testLayout 
      android:id="@+id/ShareVideo" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/black"/> 

     <ImageButton 
      android:id="@+id/ShareToggle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="36dp" 
      android:layout_marginLeft="16dp" 
      android:background="@android:color/transparent" 
      android:src="@drawable/ic_video_cam_switch" /> 
    </RelativeLayout> 

例如什麼是

app:layout_constraintDimensionRatio, app:layout_constraintLeft_toLeftOf, 
app:layout_constraintRight_toLeftOf, app:layout_constraintTop_toBottomOf, 
app:layout_constraintBottom_toTopOf, etc 
+1

你不把它轉換成Java代碼....你到底做。 – DroiDev

+0

我試圖以編程方式添加約束佈局 –

回答

1

代碼等價物可以通過編程類似於創建約束佈局您創建的任何其他佈局。 另外,您可以使用ConstraintSet以編程方式設置約束。

你的情況:

ConstraintSet set = new ConstraintSet (context); 
int id = R.id.ShareContainer, root_id=R.id.root_container; // I don't know root container id, so suppose it is root_container 

// ratio 
set.setDimensionRatio(id, "16:9"); 

//SIDE to SIDE of VIEW 
set.connect(id, BOTTOM, root_id, BOTTOM, 8); //object, side, anchor, anchor's side, margin 
set.applyTo(contraintLayout); 
+0

你可以解釋一下我的代碼,將有助於理解 –

+0

@MarissaNicholas看編輯 – Valentun

相關問題