Let me the explain the reasoning
that I use when I look at a new layout.
It looks like there's two
equally spaced columns here.
That signals to me, that
we need LinearLayout weights,
where each of these have equal weights.
So let's create
a horizontal LinearLayout.
Within this first child, we have
three vertically stacked text views,
so we have a vertical LinearLayout,
and the same goes for this second child,
which has two elements vertically
stacked on top of each other
which means we use
a vertical LinearLayout as well.
And here's the code, we created a new
list_item_forecasts_today.xml file
under the layout folder.
The code looks very similar
to list_item_forecast.
It has a horizontal LinearLayout,
as a root element.
The first child is a vertical LinearLayout
with width zero and a weight of one.
The second child is another
vertical LinearLayout
with a width of zero and a weight of one,
that way the horizontal space
will be distributed evenly
among each child.
If you go back to the first LinearLayout,
notice that we have
three TextViews within it,
for date, high temperature,
and low temperature.
We specify gravity
to be center horizontal,
so anything within the LinearLayout
will be centered horizontally.
Otherwise, by default, they would be
left-aligned to the LinearLayout.
The same applies for the
second LinearLayout.
We specify gravity to be
center horizontal so that the icon
and the weather forecast TextView
within it are also centered horizontally.
دعوني أشرح المنطق الذي أفكر به
.عندما أنظر إلى تخطيط جديد
يشبه ذلك الأمر كما لو كان لدينا عمودان متساويان
.في المساحة هنا
يشير ذلك، إلى أننا نحتاج
إلى أوزان LinearLayout حيث يكون
.لجميعها أوزان متساوية
ولذلك دعونا
.ننشئ LinearLayout أفقيًا
وخلال هذا التابع الأول، يكون
،لدينا ثلاثة عروض نصوص مكدسة
وبالتالي يكون لدينا LinearLayout رأسي
ويسري نفس الشيء على التابع الثاني
الذي يتسم بوجود عنصرين
رأسيين مكدسين
في الجزء العلوي لكل منهما وهو ما يعني أننا
.نستخدم LinearLayout رأسي أيضًا
وفيما يلي التعليمة البرمجية حيث قمنا
بإنشاء ملف list_item_forecasts_today.xml جديد تحت
.مجلد التخطيط
تبدو التعليمة البرمجية أقرب ما
.تكون إلى list_item_forecast
وتتميز بوجود LinearLayout أفقي بصفته
.عنصر جذر
يعد التابع الأول LinearLayout رأسيًا
.ويقدر اتساعه بصفر ويبلغ وزنه واحدًا
يعد التابع الثاني LinearLayout
رأسيًا باتساع صفر ووزنه
يبلغ واحدًا
الأمر الذي يقسم
المسافة
.الأفقية بالتساوي بين كل تابع
في حالة عودتك إلى LinearLayout الأول، لاحظ أنه بها
،ثلاثة عروض نصية TextView
للتاريخ
ودرجة الحرارة
.المرتفعة ودرجة الحرارة المنخفضة
نعمل على تحديد
الجاذبية
إلى المركز الأفقي، وبالتالي
.سيتمركز كل شيء داخل LinearLayout بشكل أفقي
وإلا فستتم المحاذاة بشكل افتراضي لجهة
.اليسار إلى LinearLayout
ينطبق نفس الشيء على
.LinearLayout الثاني
نقوم بتحديد الجاذبية لتكون في المركز الأفقي
وهو ما يجعل الرمز
وTextView الخاص
.بتنبؤات الطقس بالداخل في المركز الأفقي أيضًا
Explicaré el razonamiento que utilizo
cuando miro un nuevo diseño.
Parece que hay dos columnas
aquí con el mismo espacio.
Esto me indica que necesitamos
pesos lineales para el diseño,
que tengan el mismo peso.
Vamos a crear
un diseño lineal horizontal.
En esta primera gráfica,
tenemos tres vistas de texto
apiladas verticalmente,
así que el diseño es vertical.
Y lo mismo pasa con la segunda gráfica
que tiene dos elementos
apilados en vertical uno encima del otro,
lo que significa
que el alineamiento es vertical.
El código está aquí.
Creamos un nuevo objeto en la lista
para pronóstico para today
en archivo XML en la carpeta de layout.
El código se parece mucho
a la lista de objetos de pronóstico.
Hay un diseño lineal horizontal
como elemento raíz.
El primer canal es un diseño
lineal vertical con un ancho cero
y un peso de uno.
El segundo hijo
es otro diseño vertical lineal
de ancho cero y peso uno.
Así, el espacio horizontal se distribuirá
de manera equilibrada entre los hijos.
Si vuelves al primer diseño lineal, fíjate
que tenemos tres vistas de texto dentro.
Para la fecha,
la temperatura máxima y la mínima.
Establecemos la gravedad
para que se centre horizontalmente.
Así que cualquier cosa en el diseño lineal
se centrará de forma horizontal.
Si no, por defecto, se justificarían
a la izquierda en un diseño lineal.
Lo mismo pasa
con el segundo diseño lineal.
Establecemos gravedad
centrada horizontalmente
para que el icono y la vista
del pronóstico del tiempo
se centren horizontalmente.
Izinkan saya menjelaskan penalaran yg saya
terapkan ketika melihat tata letak baru.
Kelihatannya seperti ada dua kolom
yang sama besar di sini.
Ini berarti kita membutuhkan
bobot LinearLayout,
dimana setiap kolom memiliki
bobot yang sama.
Jadi mari kita membuat
sebuah LinearLayout horizontal.
Dalam anak pertama ini, kita memiliki tiga
tampilan teks bertumpuk secara vertikal,
jadi kita memiliki LinearLayout vertikal,
demikian juga anak yang kedua ini,
yang memiliki dua elemen yang saling
bertumpuk secara vertikal
yang artinya kita juga menggunakan
LinearLayout vertikal.
Dan inilah kodenya.
Kita membuat sebuah file
listitemforecasts_today.xml yang baru
di bawah folder tata letak.
Kodenya terlihat sangat mirip dengan
listitemforecast.
Kode ini memiliki sebuah LinearLayout
horizontal sebagai elemen akarnya.
Anak pertamanya merupakan sebuah
LinearLayout vertikal
dengan nilai lebar nol dan
nilai bobot satu.
Anak keduanya merupakan
LinearLayout vertikal yang lain
dengan nilai lebar nol dan
nilai bobot satu,
dengan demikian, ruang horizontalnya
akan terdistribusikan secara merata
di antara setiap anak.
Jika Anda kembali lagi ke
LinearLayout yang pertama,
perhatikan bahwa kita memiliki
tiga TextView di dalamnya,
yang dibuat untuk tanggal, suhu maksimum,
dan suhu minimum.
Kita menentukan gravitasinya untuk posisi
di tengah secara horizontal,
supaya apa pun yang berada di LinearLayout
akan berada di tengah secara horizontal.
Jika tidak, secara default, mereka akan
ditempatkan di tepi kiri.
Kondisi yang sama juga berlaku untuk
LinearLayout yang kedua.
Kita menentukan gravitasinya untuk posisi
di tengah secara horizontal, supaya ikon
dan TextView prakiraan cuacanya juga
akan berada di tengah secara horizontal.
レイアウトの見方を説明します
同じ幅の2つの列があるように見えます
これは同じウェイトを持つLinearLayoutが
必要だという合図です
では水平方向のLinearLayoutを作りましょう
1列目には縦に3つのTextViewが並ぶので
垂直方向のLinearLayoutを使います
同様に2列目にも縦に2つの並ぶので
垂直方向のLinearLayoutを使います
コードはこのようになります
layoutフォルダの下に新しく
list_item_forecast_today.xmlを作りました
list_item_forecast.xmlと
よく似ています
ルートは水平方向のLinearLayoutです
1列目は幅がゼロでウェイトが1の
垂直方向のLinearLayoutで
2列目も同じく幅がゼロでウェイトが1です
これで水平方向のスペースが均等に2分割されます
1つ目のLinearLayoutは3つのTextView、
日付、最高気温、最低気温を持ちます
gravityをcenter_horizontalにすると
すべての要素が水平方向の中央に配置されます
デフォルトではすべて左寄せです
2つ目のLinearLayoutも
gravitiyをcenter_horizontalにすると
アイコンのTextViewが
水平方向の中央に配置されます
제가 새로운 레이아웃을 볼 때
생각하는 방식을
설명해 드릴게요
여기 같은 폭으로 된
두 개의 열이 있네요
그렇다면 직선 형태의 레이아웃에
두 요소가 동일한 무게를 갖도록 해야겠군요
그러면 가로 직선 레이아웃을
만들도록 하죠
첫번째 하위항목에는 세로로 쌓인
텍스트뷰가 3개 있으니
세로 직선 레이아웃이고
두번째 하위항목에는 세로로 쌓인 요소가
2개 있으니 다시
세로 직선 레이아웃이네요
이제 코드입니다
레이아웃 폴더에
새로운 listitemforecasts_today.xml 파일을 만들었어요
list item forecast와 굉장히 비슷한 코드입니다
가로 직선 레이아웃이 근원요소예요
첫번째 하위항목은 세로 직선 레이아웃이고
가로 0, 무게 1입니다
두번째 하위항목은 또다른
세로 직선 레이아웃이고
역시 가로 0 무게 1이에요
각 하위항목에서 가로 공간이
고르게 분배되기 위함입니다
첫번째 직선 레이아웃에는
3개의 텍스트뷰가 있었지요
날짜, 최고온도, 최저온도 이렇게요
gravity는 center_horizontal 로 지정해서
직선 레이아웃 내의 모든 요소가
가운데 정렬이 되게 하세요
그렇지 않으면 기본적으로
레이아웃 왼쪽으로 정렬되니까요
두번째 직선 레이아웃도 마찬가지입니다
gravity를
center_horizontal로 지정하여
아이콘과 일기예보 텍스트 뷰가
가로로 가운데 정렬이 되게 하세요
Deixe-me explicar o raciocínio
que uso quando eu olho para um novo layout.
Parece que há duas colunas
de espaçamento igual aqui.
Isso me indica que
precisamos de pesos de LinearLayout,
onde cada uma destas tem pesos iguais.
Então vamos criar
um layout linear horizontal.
Neste primeiro filho, temos
três textViews empilhadas verticalmente,
então temos um layout linear vertical,
e o mesmo vale para este segundo filho,
que tem dois elementos empilhados
verticalmente um sobre o outro,
o que quer dizer que usamos
também um layout linear vertical.
E aqui está o código, criamos um novo arquivo,
list_item_forecasts_today.xml,
na pasta de layout.
O código é muito semelhante
a list_item_forecast.
Ele tem um layout linear horizontal
como elemento raiz.
O primeiro filho é um layout linear vertical
com largura 0 e peso 1.
O segundo filho é outro
layout linear vertical
com largura 0 e peso 1,
de modo que o espaço horizontal
será distribuído igualmente
entre cada filho.
Se você voltar ao primeiro layout linear,
observe que teremos
três textViews nele,
para data, temperatura alta
e temperatura baixa.
Especificamos que a gravidade
será centralizada horizontalmente,
então qualquer coisa dentro do layout linear
será centralizada horizontalmente.
De outra forma, por padrão, elas seriam
alinhadas à esquerda ao layout linear.
O mesmo se aplica ao
segundo layout linear.
Especificamos que a gravidade será
centralizada horizontalmente, de modo que o ícone
e a previsão do tempo de textView
dentro dele também serão centralizados horizontalmente.
Вот как я рассуждаю,
глядя на новую схему расположения.
Похоже, здесь две колонки
одинаковой ширины.
Это означает, что в элементе LinearLayout
им потребуется присвоить
одинаковые значения weight,
то есть выделить для них
одинаковое пространство.
Давайте создадим
горизонтальную схему расположения.
Внутри первой схемы
расположены вертикально
три текстовых представления,
так что у нас
вертикальная схема расположения.
То же со второй схемой:
два элемента один на другом,
значит, тоже используем
вертикальную схему расположения.
А вот код. Мы создали новый
файл list_item_forecast_today.xml
внутри папки layout.
Код очень похож на код
в файле list_item_forecast.xml.
В качестве корневого элемента
у меня горизонтальный LinearLayout.
Первый дочерний элемент --
это вертикальный LinearLayout
с нулевой шириной (width)
и единичным весом (weight).
Второй дочерний элемент --
тоже вертикальный LinearLayout
с нулевой шириной и единичным весом.
Тогда пространство будет разделено
равномерно по горизонтали
между дочерними элементами.
Если вернуться
к первому элементу LinearLayout,
можно заметить, что в нём есть
три элемента TextView,
для даты, высокой температуры и низкой.
Атрибут gravity мы зададим
как center_horizontal.
Тогда всё в элементе LinearLayout
будет центрироваться горизонтально.
Иначе по умолчанию действует
выравнивание по левому краю.
Сделаем то же
со вторым элементом LinearLayout.
Мы зададим
атрибут gravity как center_horizontal,
чтобы значок и текстовое представление
прогноза погоды внутри него
тоже центрировались горизонтально.
Hãy để tôi giải thích lý do mà tôi sử dụng khi tôi nhìn vào một new layout mới.
Nó giống như 2 cột trống bằng nhau ở đây,
Nó gợi ý tôi rằng, chúng ta cần Linear layout weight
và mỗi cái weight đều bằng nhau.
Hãy tạo một linear layout nằm ngang.
child view thứ nhất, chúng ta có 3 ngăn text view xếp chồng lên nhau,
vì vậy chúng ta có một linear layout thẳng đứng,
và một cái tương tự cho child view thứ hai,
gồm 2 thành phần nằm lên nhau.
linear layout đứng sẽ một lựa chọn tốt cho chúng ta.
Và đây là code, chúng ta đã tạo một file listitemforecast today.xml mới
bên dưới thư mục layout.
code troog có vẻ tương tự như của listitemforecast
linear layout nằm ngang là thành phần gốc.
child view thứ nhất là một linearlayout đứng.
với width là 0dp và weight là 1.
Child view thứ hai là một linear layout đứng khác.
với width 0dp và weight là 1.
bằng cách này khoảng trống sẽ được phân chia
cho mỗi child view.
Nếu bạn trở lại Linear Layout đầu tiên,
chú ý rằng chúng ta có 3 textview bên trong nó,
cho ngày, nhiệt độ cao và nhiệt độ thấp.
Chúng ta sẽ định gravity là center theo chiều ngang.
nên mọi thứ trong LinearLayout sẽ được nằm ở giữa.
Mặc định, chúng được canh lê trái của Linear Layout.
Cũng tương tự cho linear layout thứ hai.
Chúng ta sẽ định gravity là center horizontal cho icon
và weather forecast textview cũng như thế.
我来说明一下我在面对一个新的布局时采用的推演过程。
这里看起来有两个等距的列,
需要我们分配线性布局权重,
而且每一列的权重要相等。
接下来,我们要创建水平线性布局。
在第一个子列中,我们设置三个垂直层叠的文本视图,
这样便完成了第一个垂直线性布局的设置,然后依此步骤创建第二个子列,
其中的两部分相互垂直堆叠起来,
即同样使用垂直线性布局。
这些是代码,我们在布局文件夹下创建了
一个新的 list_item_forecasts_today.xml 文件。
该代码与 list_item_forecast 非常相似,
采用了一个水平线性布局作为根元素,
第一个子列为垂直线性布局,
宽度为“0”,权重为“1”。
第二个子列为另一个垂直线性布局,
宽度为“0”,权重为“1”,
以此确保在每个子列之间
平均分配水平间距。
如果您返回到第一个线性布局,
请注意其中包含三个文本视图,
分别表示日期、最高温和最低温。
我们将重力指定为水平居中对齐,
因此线性布局中的任何内容都将水平居中对齐。
否则,它们将默认按线性布局左对齐。
这一情况同样适用于第二个线性布局。
我们将重力指定为水平居中对齐,这样其中的
图标和天气预报文本视图也会水平居中对齐。