1. ホーム
  2. android

Android studio 制約レイアウト ConstraintLayout

2022-02-18 18:19:23

コンストレイントレイアウト は、2016年 Google I/O Android向けの最新レイアウトは、まだ洗練された段階です。発売の勢いからすると、主流のレイアウトスタイルになるはずです。最新版では Android Studio ConstraintLayoutは、Android Studioの最新版でデフォルトのレイアウトになりました。

コンセプト

ConstraintLayout制約レイアウトとは:レイアウト内の他の要素やビューに基づいて、画面上のViewの位置を決定することです。他のビューに基づく位置の設定、親コンテナに基づく位置の設定、およびベースラインに基づく位置の設定の3つの重要な情報を含んでいます。

layout_constraint[origin]_[target]="[target_id]"

app:layout_constraintBottom_toBottomOf="@+id/constraintLayout"

制約事項 The bottom of the current View から Bottom of the target View の場合、ターゲットViewはconstraintLayoutです。これは、現在のViewがconstraintLayout(親コンテナ)の底に置かれ、底が一定であることを意味します。

複数の例を示すために、再利用されるアクティビティページを使用します。パラメータに基づいて、タイトルとレイアウトIdを設定します。

<テーブル
public
class
LayoutDisplayActivity 
extends
AppCompatActivity {
private
static
final
String TAG = LayoutDisplayActivity.
class
.getSimpleName();
static
final
String EXTRA_LAYOUT_ID = TAG + 
".layoutId"
; 
// Layout ID
@Override
protected
void
onCreate(
@Nullable
Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setTitle(getIntent().getStringExtra(Intent.EXTRA_TITLE));
final
int
layoutId = getIntent().getIntExtra(EXTRA_LAYOUT_ID, 
0
);
setContentView(layoutId); 
// set page layout, reuse layout
}
}

メインページでは、ListViewを使用して複数の項目をそれぞれ異なるレイアウトで表示しています。アイテムをクリックすると、異なるIntentが送信され、表示されるページが満たされます。

<テーブル
public
class
MainActivity 
extends
AppCompatActivity {
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView) findViewById(R.id.activity_main);
ArrayAdapter<String> adapter = 
new
ArrayAdapter<>(
this
,
android.R.layout.simple_list_item_1, LIST_ITEMS);
list.setAdapter(adapter);
list.setOnItemClickListener(
new
AdapterView.OnItemClickListener() {
@Override
public
void
onItemClick(AdapterView<? > adapterView, View view, 
int
i, 
long
l) {
// Reuse the display layout
Intent intent = 
new
Intent(MainActivity.
this
, LayoutDisplayActivity.
class
);
intent.putExtra(Intent.EXTRA_TITLE, LIST_ITEMS[i]); 
// Title
intent.putExtra(LayoutDisplayActivity.EXTRA_LAYOUT_ID, LAYOUT_IDS[i]); 
// Layout Id
startActivity(intent);
}
});