Цэнтраванне CheckBox Праглядаў

Калі вы зацікаўлены ў Radiobuttons у дадатак да (ці замест) CheckBoxes см гэта замест гэтага пытання.

Нягледзячы на ​​наяўнасць

center_horizontal

у файле стылю, дзве галачкі ня па цэнтры, але з'яўляюцца «выраўноўваннем налева».

non-centered

<�Моцны> Рэз/макет/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>


    

    


<�Моцны> дазваляе в/значэння/styles.xml



5

8 адказы

Проста дадайце ў ваш LinearLayout :

android:gravity="center_horizontal"

Гэты радок паказвае, што ўсё ўнутры гэтай схемы будзе знаходзіцца ў цэнтры. Поўны код макета:




    

    



Вось вынік я атрымаў:

enter image description here

1
дададзена



    




 

ok, last try for today ;) you should post a picture next time, HOW it should look... well, now you ll have your LinearLayout divided into two similar wide part (red & green), and in every block your checkbox is in the center...did i got it right this time?!

1
дададзена
Выдаленне двух гравітацыйных ліній у файле стылю і дадаўшы сілу цяжару вы прапануеце да LinearLayout не працуе. Ці працуе ён на вашым боку? Вам не трэба прылада. Зацьменне паказвае праблему.
дададзена аўтар Calaf, крыніца
Але я <�б> зрабіць хоча LinearLayout прыняць усе прастору, якое ён мае. Я таксама хачу дзве галачкі, каб падзяліць гэта прастора пароўну (такім чынам, 1,1). Рашэнне вы прапануеце робіць два сцяжкоў расслаенне разам, на гэты раз у цэнтры.
дададзена аўтар Calaf, крыніца
Вы яго атрымалі. Толькі ў мяне ёсць некалькі праблем з гэтым рашэннем. Неабходныя два дадатковых LinearLayouts? Калі дадаць LinearLayout для кожнага фішкі, які я хачу па цэнтры, я амаль у два разы агульная колькасць вузлоў у маім файле XML. Другое пытанне заключаецца ў тым, што я хацеў бы зрабіць тое ж самае для RadioGroup, які змяшчае шмат радиокнопок. У гэтым выпадку гэта ўжо не магчыма (IIUC) сціснуць LinearLayout паміж RadioGroup і кнопкамі.
дададзена аўтар Calaf, крыніца
я абнавіў свой адказ ... Ваша праблема вага макета 1, дзе вы кажаце, што ваш элемент павінен прыняць усе прастору, якое ён мае (ці палову, калі вы вызначылі два з іх ...)
дададзена аўтар longilong, крыніца
адрэдагаваны яшчэ раз, але не выкарыстоўваць нашы стылі ..
дададзена аўтар longilong, крыніца
Ну, ёсць шмат спосабаў стварыць UIs .. Але я думаю, вы павінны праверыць GridLayout. Гэта будзе адпавядаць вашым патрэбам, я думаю. developer.android.com/reference/android/widget/GridLayout.ht‌ мл
дададзена аўтар longilong, крыніца



    




 

ok, last try for today ;) you should post a picture next time, HOW it should look... well, now you ll have your LinearLayout divided into two similar wide part (red & green), and in every block your checkbox is in the center...did i got it right this time?!

1
дададзена
Выдаленне двух гравітацыйных ліній у файле стылю і дадаўшы сілу цяжару вы прапануеце да LinearLayout не працуе. Ці працуе ён на вашым боку? Вам не трэба прылада. Зацьменне паказвае праблему.
дададзена аўтар Calaf, крыніца
Але я <�б> зрабіць хоча LinearLayout прыняць усе прастору, якое ён мае. Я таксама хачу дзве галачкі, каб падзяліць гэта прастора пароўну (такім чынам, 1,1). Рашэнне вы прапануеце робіць два сцяжкоў расслаенне разам, на гэты раз у цэнтры.
дададзена аўтар Calaf, крыніца
Вы яго атрымалі. Толькі ў мяне ёсць некалькі праблем з гэтым рашэннем. Неабходныя два дадатковых LinearLayouts? Калі дадаць LinearLayout для кожнага фішкі, які я хачу па цэнтры, я амаль у два разы агульная колькасць вузлоў у маім файле XML. Другое пытанне заключаецца ў тым, што я хацеў бы зрабіць тое ж самае для RadioGroup, які змяшчае шмат радиокнопок. У гэтым выпадку гэта ўжо не магчыма (IIUC) сціснуць LinearLayout паміж RadioGroup і кнопкамі.
дададзена аўтар Calaf, крыніца
я абнавіў свой адказ ... Ваша праблема вага макета 1, дзе вы кажаце, што ваш элемент павінен прыняць усе прастору, якое ён мае (ці палову, калі вы вызначылі два з іх ...)
дададзена аўтар longilong, крыніца
адрэдагаваны яшчэ раз, але не выкарыстоўваць нашы стылі ..
дададзена аўтар longilong, крыніца
Ну, ёсць шмат спосабаў стварыць UIs .. Але я думаю, вы павінны праверыць GridLayout. Гэта будзе адпавядаць вашым патрэбам, я думаю. developer.android.com/reference/android/widget/GridLayout.ht‌ мл
дададзена аўтар longilong, крыніца

У вас ёсць Android: layout_weight = 1. Такім чынам, вашы сцяжкі запоўніць усю шырыню экрана. Выдаліць АНДРОІД: layout_weight ад стылю і дадаць межаў паміж сцяжкамі.

Цяжар у Checkbox не ўплывае на кнопку ўнутранага кляшча, толькі тэкст.

EDIT

Добра, паспрабуйце наступнае:

<?xml version="1.0" encoding="utf-8"?>


    

    

    

    

    


І выдаліць layout_weight ад стылю.

Іншы спосаб стварэння карыстацкіх сцяжок. Але я думаю, што гэта занадта складана для гэтай праблемы.

1
дададзена
Так, але я хацеў бы LinearLayout займаць шырыню экрана. Калі я выдалю АНДРОІД: layout_weight = 1, калапс дзве птушачкі ў левай частцы экрана. Яны становяцца ў цэнтры, але гэта толькі таму, што яны wrap_content ўстаноўлены.
дададзена аўтар Calaf, крыніца


0
дададзена

Вось тое, што можа дапамагчы:

АНДРОІД: гравітацыя супраць андроіда: layout_gravity

  • Android: сілы цяжар, ​​як правіла, унутраная, звычайна просіць сам, што рабіць з пікселямі выгляду мае
  • Android: layout_gravity, як правіла, знешні, як правіла, просіць бацька ViewGroup (LinearLayout/RelativeLayout/FrameLayout), як становішча малюнка з дадатковымі пікселямі, што выгляд не выкарыстоўваецца

Калі вы выкарыстоўваеце прадстаўленне з wrap_content, вы, верагодна, хочаце выкарыстоўваць layout_gravity. Калі вы выкарыстоўваеце прадстаўленне з match_parent, вы, верагодна, хочаце паспрабаваць сілы цяжару.

Часам ўпакоўка іншы ViewGroup вакол клапатлівага View можа дапамагчы з пазіцыянаваннем. Меркаванні і ViewGroups прайсці праз заблытаны «прастора экрана» перамовы фазы, і розныя віды (кнопкі/TextView/ImageView/і г.д.) і ViewGroups (LinearLayout/RelativeLayout/TableLayout/і г.д.) маюць розныя правілы і перагаворныя паўнамоцтвы

Вось чаму часам спарванне клапотна View з іншым бацькам, як FrameLayout або LinearLayout можа прымусіць яго весці сябе ўсе раптоўныя

0
дададзена

Гэта трохі брудны, але гэта працуе, і так, гэта працуе, а на 3 ці больш CheckBox уваходаў:

 
                        
                        
                        
                        
                        
                        
                                                    
                    
0
дададзена

Паспрабуйце ў стылі

 0dp

Я спадзяюся, што гэта будзе працаваць .. дзякуй ..

0
дададзена