13

每當我在ConstraintLayout中創建像ButtonTextView這樣的視圖時,它們都會卡在頂部角落,而不是我放置的位置。左上角的ConstraintLayout視圖

我試圖創建新的活動並更改模擬器,但結果仍然相同。

這是發生了什麼事的截圖:

enter image description here

可能是什麼問題?

+0

顯示您的xml代碼。 – tahsinRupam

+0

你想在中心顯示你的按鈕和文字嗎? – tahsinRupam

+0

是的,這正是我試圖做的 –

回答

21

正如Constraint Layout guides說:

如果當您運行在設備上的佈局視圖沒有限制,在位置[0,0](在左上角)繪製。

您必須爲視圖添加至少一個水平和垂直約束。

我想你沒有應用任何約束。

無論是手動應用約束的觀點,或讓佈局編輯器做你使用「推斷約束」按鈕:

enter image description here

4

當你把一個視圖到PCB編輯器,即使它沒有限制,它仍然保留在你離開它的地方...這只是爲了使編輯更容易

換句話說,視圖將「留在你的地方它「,直到你添加約束。

它在預覽版與您的應用程序中看起來不同的原因是因爲您的XML中的任何內容與tools:都是going to be removed from the code when your app runs。這些選項僅適用於Android Studio佈局編輯器,並不代表您在代碼運行時應該看到的內容。

而且這可能是麻煩的初學者,因爲

缺少約束,不會造成編譯錯誤

然而

佈局編輯器顯示缺少約束工具欄中有錯誤。要查看錯誤和其他警告,請單擊顯示警告和錯誤(帶數字的紅色按鈕)。爲了幫助您避免丟失的約束,佈局編輯器可以自動與Autoconnect and infer constraints features

More details

+0

我發現即使在佈局編輯器中也會發生這種情況。例如,如果我將「ImageView」放入佈局的中間,它仍會卡在左上角。我必須改變它的尺寸,然後才能移動它,或者做任何事情。這似乎不是記錄的行爲。 – orodbhen

+0

是的,這正是*「留在你離開它的地方」*的意思 –

2

一個快速,簡單的方法來解決這一問題添加約束你是點擊組件(TextView的,ImageView的,等。)並單擊推斷約束按鈕。它看起來像2個黃色加號。

infer constraints image

相關問題