Ana içeriğe atla

GRAVITY

Türkçe karşılığı yerçekimi demek olan gravity özelliği bir nesneyi daha büyük bir alan içerisinde konumlandırmak için kullanılır. layout_gravity ve android_gravity olmak üzere farklı amaçlar için kullanılan iki gravity özelliği bulunur. 

layout_gravity

Bir nesneyi layout içerisinde konumlandırmak için kullanılan özelliktir. Buton gibi nesnelerinizi layout içerisinde center,left veya right gibi parametreler kullanarak konumlandırabilirsiniz. Linearlayoutun varsayılan sıralaması (orientation) yataydır (horizontal). Eğer nesnelerinizi horizontal sıralaması olan bir linearlayout içerisinde konumlandırırsanız nesnelerinizin bulunduğu sütun içerisinde bu işlem gerçekleşecektir. Bunu bir örnekle açıklayalım.

 Şekil 1’de 3 buton linearlayout içerisinde sıralanmıştır. Kodlar incelendiğinde linearlayout özelliklerinde orientation belirtilmediği için varsayılan olarak horizontaldır. Bu sebeple butonlar yan yana dizilmiştir. Her bir butona weight değeri 1 olarak verildiği için yatayda eşit miktarda yer kaplamışlardır. Her butonun yükseklik değeri ise 150dp’dir.

Şekil 2’de ise her bir buton layout_gravity kodu ile linearlayout içerisinde farklı pozisyonlarda konumlandırılmıştır.

14. Satırda Buton1 layout_gravity komutu ve center parametresi ile merkeze konumlandırılmıştır. 21.Satırda Buton2 right parametresi ile sağa ve 28.satırda ise Buton3 bottom parametresi ile layoutun en altına konumlandırılmıştır. Aşağıdaki iki soru akıllara takılan sorular olabilir:

1- Buton1 center parametresi ile neden layoutun tam ortasına konumlanmadı?

2- Buton2 right parametresi ile layotun sağına gitmesi gerekirken neden olduğu yerde kaldı?

Yukardaki iki sorunun cevabı butonların kendi bulundukları sütun içerisinde konumlanmalarıdır. Bu sebeple kendi sütununu tamamen kapladığı için sağa veya sola gitmesi mümkün olmayan Buton2 olduğu yerde kalmıştır. Buton1 yatayda tüm sütununu kapladığı için  center parametresi sonucu sadece dikeyde merkeze gelebilmiştir. Buton3 ise bottom ile layoutun altına konumlanmıştır. Bu sütunları ekran üzerinde görebilseydik aşağıdaki şekildeki gibi gözükecekti.


Peki linearlayoutun sıralaması yatay yerine dikey (vertical) olsaydı o zaman layout gravity nasıl çalışırdı? Bu durumda konumlandırma işlemi öğelerin bulunduğu sütun yerine satırda yapılacaktı. Bunu da bir örnekle açıklayalım. Aşağıdaki şekilde sıralaması dikey olan bir linearlayout içerisinde her birisi 150dp genişliğinde 3 buton yer alıyor. Görüldüğü gibi bütün butonlar weight değerleri 1 olduğu için dikeyde aynı alanı kaplayacak şekilde sıralanmışlar.

Butonları layout_gravity kodu ile layout üzerinde konumlandırdığımızda her bir buton bulunduğu satırda hareket edecektir.


Buton1 15.satırda layout_gravity=”bottom” kodu ile layoutun altında konumlandırılmak istense de bulunduğu pozisyonda kalmıştır. Bunun sebebi her butonunun kendi bulunduğu satır içerisinde hareket etmesidir. Buton2 22.satırdaki center parametresi ile bulunduğu satırın orta noktasına konumlandırılmıştır. Buton3 ise 29.satırdaki right parametresi ile bulunduğu satırın sağına yerleşmiştir. 

android_gravity

Layout gravity kodu ile nesneler layout üzerinde konumlandırılırken, android gravity ise nesnelerin içindeki öğeleri nesne üzerinde konumlandırmaya yarar. Örneğin bir buton üzerindeki “Kaydet” yazısını buton üzerinde konumlandırmak için android_gravity kullanılır. Aşağıdaki örnekte 150dp*150dp boyutlarındaki bir buton layout üzerinde 14.satırdaki center parametresi ile bulunduğu sütunda merkeze getirilmiştir. Buton üzerindeki Kaydet yazısı ise 13.satırdaki android_gravity özelliğine verilen right parametresi ile butonun sağına hizalanmıştır.


Kaydet yazısını butonun sağ alt köşesine almak isterseniz iki parametreyi “bottom|right” biçiminde kullanabilirsiniz. Örnekte linearlayout özelliklerinde orientation özelliğinin belirtilmediğine dolayısıyla sıralamanın varsayılan olarak horizontal (yatay) yapıldığına dikkat edin.

English Content

Gravity property, which means gravity in Turkish, is used to position an object in a larger area. There are two gravity properties that are used for different purposes, layout_gravity and android_gravity.

layout_gravity

It is the property used to position an object in the layout. You can position your objects such as buttons in the layout using parameters such as center, left or right. Linearlayout's default orientation is horizontal. If you position your objects in a horizontal order linearlayout, this will be done in the column where your objects are. Let's explain this with an example.

 In Figure 1, 3 buttons are listed in linearlayout. When the codes are examined, it is default horizonta because orientation is not specified in the linearlayout properties. For this reason, the buttons are lined up side by side. Since the weight value of each button is given as 1, they occupy an equal amount of space on the horizontal. The height value of each button is 150dp.

In Figure 2, each button is positioned in different positions in the linearlayout with the layout_gravity code.

In line 14, Button1 is located in the center with the layout_gravity command and the center parameter. On the 21st line, Button2 is positioned to the right with the right parameter and on the 28th line, Button3 is positioned at the bottom of the layout with the bottom parameter. The following two questions may be puzzling questions:

1- Why is the button1 not located in the middle of the layout with the center parameter?

2- Why did it stay where it was when it should go to the right of the layot ​​with the button2 right parameter?

The answer to the above two questions is that the buttons are positioned in the column they are in. For this reason, Button2, which cannot go to the right or left because it completely covers its own column, remained in its place. Since button1 covers the entire column horizontally, the result of the center parameter could only come to the center in the vertical. Button3 is positioned below the layout with bottom. If we could see these columns on the screen, it would look like the figure below.

So if the order of linearlayout was vertical instead of horizontal, then how would layout gravity work? In this case, the positioning would be done in the row instead of the column where the items are. Let's explain this with an example. There are 3 buttons, each 150dp wide, in a linearlayout, the order of which is vertical in the following figure. As you can see, all buttons are arranged vertically to cover the same area since their weight values ​​are 1.

When we position the buttons on the layout with the layout_gravity code, each button will move on the line where it is located.

Buton1, on the 15th line, remained in the position it was in, even though it was wanted to be positioned under the layout with the code layout_gravity = "bottom". The reason for this is that each button moves within its own row. Button2 is located in the middle of the line with the center parameter on the 22nd line. Button3 is placed on the right of the line with the right parameter on the 29th line.

android_gravity

With the layout gravity code, objects are positioned on the layout, while android gravity is used to position the elements inside the objects on the object. For example, android_gravity is used to position the "Save" text on a button on the button. In the example below, a button with the size of 150dp * 150dp has been brought to the center in the column with the center parameter on the 14th line on the layout. The Save text on the button is aligned to the right of the button with the right parameter given to the android_gravity property on the 13th line.

If you want to put the Save text in the lower right corner of the button, you can use the two parameters in the form of "bottom | right". Note that the orientation property is not specified in the linearlayout properties in the example, so the sorting is made horizontal by default.



Yorumlar

Bu blogdaki popüler yayınlar

Visual Studio Boş Satırları Silmek

 Visual Studio ortamında kodunuzu düzenlemek için bıraktığınız boş satırları silmek isteyebilirsiniz. Bunun için tek tek boş satırları seçip klavyeden del tuşuna basmanıza gerek yok. Bu işi daha kolay ve hızlı şekilde halletmek için bir klavye kısayolu belirleyebilirsiniz. Bunun için aşağıdaki adımları izlemeniz yeterli. 1- Araçlar menüsünden Seçeneklere tıklayın.  2- Açılan pencerede "Şunu içeren komutları göster" bölümüne sil yazarak listeden "Düzen.BoşSatırlarıSil" seçeneğini seçin.  3-"Yeni kısayolu bu ortamda kullan" bölümüne boş satırları silmek için kullanacağını kısayolu girin. Bunun için boş metin kutusuna tıklayın ve ardından kullanmak istediğiniz kısayola klavyede basın. Burada dikkat etmeniz gereken nokta seçeceğini kısayolun başka bir işlemde hali hazırda kullanılıyor olmamasıdır. Bunu engellemek için CTRL + * kısayolunu seçebilirsiniz. 4- Kısayolu belirledikten sonra sırasıyla Ata ve Tamam butonlarına basarak işlemi tamamlayın. 5- Boş satırla

Switch Konsol Bağlantısı (Switch Console Port Connection)

Yönetilebilir switch üzerinde konfigürasyon işlemini yapabilmek için ilk olarak CLI ekranına erişilmelidir. CLI (Command Line Interface) switche komut verdiğimiz komut satırıdır. Switch yönetimi bu ortam üzerinden verilen komutlarla gerçekleştirilir.  Yönetmek amacıyla bir switche temel olarak iki farklı türde bağlanılabilir. Bunlardan ilki ağ üzerinden TELNET veya SSH protokollerini kullanarak yapılan uzaktan bağlantıdır. Diğer  türü ise switche fiziksel olarak daha yakın olmayı gerektiren console portu üzerinden yapılan bağlantıdır.  Bir switche console portu üzerinden bağlanmak için roll over (konsol kablosu da deniliyor) kablosu kullanılır. Bu kablonun RJ-45 ile sonlandırılmış ucu switch üzerindeki console portuna diğer ucu ise bilgisayarın RS232 seri portuna takılır. Kablo bağlantıları yapıldıktan sonra bilgisayardan Hyper-Terminal veya Putty gibi programlar kullanılarak switch arayüzüne erişim sağlanır.  Roll Over Kablosu (Konsol Kablosu) Roll Over Cable (Console Cable) Günümüzde

Ayrık Matematik (Discrete Mathematics) - 2

Bir önceki yazımızda ayrık matematiğin ne olduğundan bahsedip, ayrık matematiğin ilk konusu olan önerme kavramını incelemiştik. Ayrık matematik ders notlarını bu siteden takip edebilirsiniz.  Önerme konusunu içeren ilk yazıyı okumak için buraya tıklayabilirsiniz.   Ayrık matematik ve uygulamaları (Discrete Mathematics and Its Applications) kitabı genellikle üniversitelerde ders kitabı olarak kullanılmaktadır. Bu yazının konusu ise birleşik önerme olacak.  Birleşik önerme konusu, 1854 yılında İngiliz matematikçi George Boole tarafından mevcut önermeleri birleştirerek yeni önermeler elde etmek için ortaya atılmıştır. Birden fazla önermenin birleştirilmesi için mantıksal operatörler (bağlaçlar) kullanılır.  Mantıksal operatörlerden ilki değil operatörüdür. 1- Değil Operatörü (negation) Basit önermelerden bildiğimiz gibi önermeler küçük harflerle temsil edilir. Bir önermenin değili  şeklinde gösterilir ve "p'nin değili" şeklinde okunur. Değil operatörü bir önermeden farklı bi