2016-04-14 35 views
1

'da merkezdeki parçanın konumunu nasıl ayarlayacağımı Merhabalar, android'de fragmanlar ile oynuyordum.
Bir etkinlikte bir parçayı bağlamanın iki yolu olduğunu okudum.
1) mizanpaj (XML) dosyasında <fragment> etiketini kullanarak.
2) FragmentManager ve FragmentTransaction kullanarak.
Etkinliğimin parçayı dinamik olarak ele almasını istiyorum, böylece 2. yaklaşım için gittim.
Ancak bir parça eklendiğinde, RelativeLayout Etkinliği'nde (RelativeLayout öğesinin varsayılan davranışı gibi görünen) sol üst köşeye eklenir. Parçamın Etkinlik Düzeninin merkezinde görünmesini istiyorum. Sadece JAVA kodunda fragmetin nasıl konumlandırılacağını anlayamıyorum. --RelativeLayout.LayoutParams kullandığı Ayrıca stackoverflow içine baktım ,RelativeLayout

Görünüm nesneleri (Düğme, TextView vs) ile çalışmak için görünür

.
Herhangi bir öneri.

+1

demek için kod ve düzeninize bakmadan XML (ipucu: bunu eklemek isteyebilirsiniz), ancak önemsiz çözüm, 'FrameLayout' parçacığı kabı olarak eklemek ve 'layoutLenter 'konumunu ayarlamak için' layout_centerHorizontal = "true" 've' layout_centerVertical = "true" 'dır 'RelativeLayout' kapsülleme içinde. – dhke

cevap

0

Etkinliğinizin düzeninde Fragment öğesinin bulunduğu RelativeLayout için android:layout_gravity="center" özniteliğini kullanın. Bu, tüm çocuk elemanlarının merkezde görünmesini sağlayacaktır.

3

içinde FrameLayout bir yer tutucuyu XML'nize yerleştirin ve android:layout_centerInParent="true" ile hizalayın. Sonra Etkinlik XML düzende kod FragmentTransaction#replace(int containerViewId, Fragment fragment, String tag)

daki fragmanı bu ifadeyi değiştirin:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
    <FrameLayout 
     android:id="@id/fragment" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true"/> 
</RelativeLayout> 

Etkinlik sınıfında:

Sert
getFragmentManager().beginTransaction() 
       .replace(R.id.fragment, new MyFragment()) 
       .commit();