فليكس: منع التمرير من تغطية المحتوى عند عرضها تلقائيا

StackOverflow https://stackoverflow.com/questions/292826

  •  08-07-2019
  •  | 
  •  

سؤال

ولدي قماش في فليكس الذي يكون قادرا إلا أن تمريره في الاتجاه الرأسي، لذلك أنا وضعت سمات قماش كما يلي:

verticalScrollPolicy="auto" horizontalScrollPolicy="off"

والمشكلة هنا هي أن شريط التمرير العمودي يغطي المحتوى عند ظهوره - ألطاف هناك مجالا الأفقية ما يكفي من نقاط. كنت أتوقع أن حجم المحتوى قد تم تعديله تلقائيا.

عند وضع سياسة التمرير العمودية إلى "على"، ويتم تغطية أي محتوى أيضا.

في حالة I تعيين كل من السياسات التمرير إلى "السيارات" أنا أيضا الحصول على شريط التمرير الأفقي لمجرد التمرير إلى المنطقة التي تغطيها شريط التمرير العمودي.

هل هناك حلا كيف يمكنني relayout محتوى قماش عند ظهور شريط التمرير العمودي بحيث لا تغطي أي محتوى؟

هل كانت مفيدة؟

المحلول

وانها علة. انظر> م> فليكس verticalScrollPolicy علة عن الحل.

نصائح أخرى

ومجرد ملاحظة الجانب فيما يتعلق بهذه المسألة: انها في الواقع ليست علة، ولكن المعروف (والمقصود؟) السلوك:

<اقتباس فقرة>   

"فليكس تعتبر أشرطة التمرير في حسابات التحجيم لها إلا إذا كنت   بوضوح تعيين سياسة التمرير لل   ScrollPolicy.ON. لذا، إذا كنت تستخدم   سياسة السيارات التمرير (الافتراضي)، و   شريط التمرير يتراكب الأزرار. إلى   منع هذا السلوك، يمكنك تعيين   الملكية height للحاوية HBOX   أو السماح الحاوية HBOX لتغيير حجم   عن طريق وضع عرض القائمة على النسبة المئوية.   تذكر أن تغيير ارتفاع   الحاوية HBOX أسباب أخرى   مكونات في التطبيق الخاص بك للتحرك   وتغيير حجم وفقا لوحدهم   التحجيم قواعد ".

- من تحجيم مكونات في مساعدة فليكس 3، تحت "استخدام أشرطة التمرير"

وكان علي أن أجد هذا الحل فليكس ScrollPolicy.AUTO لا كفى الجيدة التي تحل هذه المسألة، لأن فليكس verticalScrollPolicy علة الحل لم ينجح بالنسبة لي.

وعلى VBOX أو مكون آخر بناء على الحاويات، ط حل هذه المشكلة من هذا القبيل.

وهذا غير صحيح:

<mx:VBox width="100%" height="100%"
      verticalScrollPolicy="auto" horizontalScrollPolicy="off">
     <mx:Repeater dataProvider="{hede}">
          <custom:RenderItem ........../>
     </mx:Repeater>
</mx:VBox>

وليس هناك شريط التمرير

والنسخة التي تعمل بها:

<mx:VBox width="100%" height="100%"
    **minHeight="1"** horizontalScrollPolicy="off">
    <mx:Repeater dataProvider="{hede}">
        <custom:RenderItem ........../>
    </mx:Repeater>
</mx:VBox>

وأنا أيضا. وعادة ما يكون بعض المشاكل مع verticalScrollBar في فليكس، لذلك أنا أفضل أن استخدام التمرير المتصفح لتمرير التطبيق الكامل. يمكنك العثور على الحل هنا: كيفية تغيير حجم المرحلة فليكس واستخدم متصفح شريط التمرير .

وكود يمكنني استخدام:

في فليكس:

ExternalInterface.call("setInitialFlashHeight", this.height);

في بلدي HTML (جافا سكريبت):

function setInitialFlashHeight(newHeight) {
    document.getElementById('my_flash').style.height = newHeight + 'px';
}

وإذا كنت ترغب في إضافة (أو إزالة) بعض الارتفاع:

function addFlashHeight(height) {
    var divHeight;
    var obj = document.getElementById('my_flash');

    if (obj.offsetHeight) {
        divHeight = obj.offsetHeight;
    } else if (obj.style.pixelHeight){
        divHeight = obj.style.pixelHeight;
    }

    var newHeight = divHeight + height;
    document.getElementById('my_flash').style.height = newHeight + 'px';
}

لإزالة، يمكنك استخدام "-" بدلا من "+"

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top