WebHU - Programozási kérdések és válaszok

Programozottan Elemek elhelyezése a tevékenységben. NINCS XML

Van egy tevékenységem, amelyhez az összes kijelzőelem dinamikusan hozzáadódik. Egyáltalán nincs xml az aktivitáshoz.

A tevékenység a következő vezérlőkből áll:

  1. RelativeLayout (Elrendezés objektum, amelybe az összes gyermeknézet belefér)
  2. TextView (az oldal címe, a RelativeLayout tetején található)
  3. ScrollView (görgethető terület, amely az összes adatvezérlőt tartalmazza)
  4. LinearLayout (Elrendezés objektum a tevékenység gombok tartásához)

Szeretném tudni, hogyan lehet meghatározni, hogy a ScrollView a Title TextView alatt és a LinearLayout gombtartó felett legyen, ahol a LinearLayout a tevékenységi oldal aljára van állítva

Megpróbáltam a RelativeLayout.LayoutParams segítségével szabályokat felállítani, de úgy tűnik, nem értem a módját. Minden segítséget vagy oktatóanyagokra mutató linket nagyra értékelnénk

Mellékeltem a kódomat, hátha valaki tud segíteni

    // declare the items for display
    RelativeLayout baseLayout = new RelativeLayout(this);   
    // add the customer name and number field.
    // NOTE: We will always require this widget regardless of dialog design fields
    tvCustomerNameNumber = new TextView(this);
    tvCustomerNameNumber.setTextSize(20);
    tvCustomerNameNumber.setText("Customer Name & Number");

    // build up the linear layout of controls
    LinearLayout ll = new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);       

    // Scroll view.
    // NOTE: We will always need this widget to enable us to scroll the page
    // if too many items are added for the display size
    ScrollView sv = new ScrollView(this);
    sv.addView(ll);

    // buttons
    LinearLayout buttons = new LinearLayout(this);
    buttons.setOrientation(LinearLayout.HORIZONTAL);

    // button edit
    Button edit = new Button(this);
    edit.setId(EDIT_BUTTON_ID);

    // button save
    Button save = new Button(this);
    save.setId(SAVE_BUTTON_ID);

    // button cancel
    Button cancel = new Button(this);
    cancel.setId(CANCEL_BUTTON_ID);

    // add each button to the button layout
    buttons.addView(edit);
    buttons.addView(save);
    buttons.addView(cancel);

    // Scroll view Layout parameters
    RelativeLayout.LayoutParams scrollParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    scrollParams.addRule(RelativeLayout.BELOW, tvCustomerNameNumber.getId());
    scrollParams.addRule(RelativeLayout.ABOVE, buttons.getId());

    // buttons Layout parameters
    RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    buttonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    buttonParams.addRule(RelativeLayout.BELOW, sv.getId());

    // add the customer name number field to the base layout
    baseLayout.addView(tvCustomerNameNumber);
    // add the scroll view to the base layout
    baseLayout.addView(sv); //, scrollParams);      
    // add the buttons to the base layout
    baseLayout.addView(buttons, buttonParams);

    // set the content view
    this.setContentView(baseLayout);
28.02.2012

Válaszok:


1

Deva már válaszolt a kérdésére, de nekem úgy hangzik, hogy a fent leírtak szerint definiálhatna egy xml-elrendezést, felfújhatná és dinamikusan programozottan feltölthetné... talán az elrendezés kezdetben egy üres LinearLayout-ot tartalmazna, és/vagy nincs szöveg állítsa be a TextView-t, esetleg állítson be mindent android:visibility="gone"-ra, és mutassa meg, ha hozzáadta/frissítette az összes nézetet?

28.02.2012
  • Végül létrehoztam egy egyszerű xml fájlt a textview, scrollview és vízszintes lineáris elrendezésekkel, és dinamikusan hozzáadtam a komponenseimet egy lineáris elrendezéshez a görgetőnézeten belül. 28.02.2012

  • 2

    Tekintse meg az alábbi linkeket, amelyek segíthetnek elérni ezt:

    Elemek programozott hozzáadása relatív elrendezéshez

    Több LinearLayout programozott hozzáadása egy nézetbe, majd hozzáadja a ViewFlipperhez?

    28.02.2012
  • Ez sokat segített, de még mindig küzdök, hogy a görgetőnézetet a szövegnézetem és a gombelrendezésem közé helyezzem. Úgy tűnik, hogy a görgetőnézet éppen a FILL_PARENT, FILL_PARENT tevékenységre kerül, így kitölti a relatív elrendezést, és figyelmen kívül hagyja az általam beállított szabályokat. 28.02.2012
  • Hozzáadtam a kódomat a kérdésbejegyzésemhez. A probléma szempontjából nem releváns kódoktól megfosztották 28.02.2012
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..