۳ پژمان آزاد
قراردادن ویوگروپها زیر همدیگه
پوریا شفیعی حل شده توسط پوریا شفیعی

سلام

پروژه صفحه پروفایل رو فرض کنید لطفا.

ویوگروپ روت ما Relative Layout هست که محتوا درون ویوگروپ Constraint قرارداره که برای اسکرول شدن محتوا در صورت لزوم درون ScrollView قرار گرفته.

بالای ScrollView منوی Toolbar هست که یک TextViewی سادس و زیرش هم یه باتن ساده Save Information داریم.

اگر بجای یه TextView ساده در Toolbar بخوایم چند تا Text View قابل اسکرول بصورت افقی در کنار هم داشته باشیم. در اینصورت یه ویوگروپ Linear میخوایم که Orientationش افقی باشه که شامل محتوای ما یعنی TextView‌های ماست و برای اینکه ممکنه بعضی از این TextView‌ها نمایش داده نشن ویوگروپ Linear رو درون ScrollView قرار میدیم.

سئوال:

از اونجا که ویوگروپها مثل ویوهای معمولی id ندارن چطور در بدنه یکی از  ScrollViewها مشخص کنیم که یکی زیر یا بالای دیگری قرار بگیرد. چون صفت android:layout_above برای مقدار دهی نیاز به id ویوگروپ مقابل داره که با دادن id هم مشکل دیگری بوجود میاد. پس این راه حل نیست. 

راه حل چیست؟

لطفا راهنمایی بفرمایید. ممنون

 

سلام پژمان عزیز

حقیقت لازمه نکته ای رو بگم که ویوگروپ هم میتونه id بگیره اما کاربردش کجاست؟کاربردش خیلی جاها میتونه باشه که من همین دیروز به این کاربرد رسیدم اونم در جاهیی بود که میخواستم فرم سفارشی درست کنم که لازم بود وقتی کاربر روی باتنی کلیک کرد قسمتی از اون فرم محو بشه پس بهترین راه حلی که به ذهنم رسید این بود که ای دی برای ویوگروپم ست کنم و اونو در کد جاوا با متد setVisibility , مخفی کنم بگذریم .

اما سوال اصلی اگر منظور شما این هست چگونه ی حالت اسلایدر توی تولبارمون با چند تا تکست ویو به وجود بیاریم 

1- این کار اصلا کار مناسبی نیست اما پاسخ : شما میتونی از HorizontalScrollView استفاده کنین که اون تکست‌ها رو داخل یک لینیر لیوت هوریزونتال قرار داده و اون لینیر رو داخل HorizontalScrollView قرار داده و این باعث میشه حالت اسکرولی افقی قرار بگیرند 

که اگر روت کل صفحه رو لینیر لیوت در نظر بگیریم به خودی خود ایتم‌ها زیر هم نمایش داده میشوند ولی اگر از رلتیو استفاده کنیم با اتربیوت above یا below میتونین ویو گروپ رو ست کنین

البته اگر سوال رو اشتباه متوجه شدم بفرمایید تصحیح کنم

بهترین پاسخ
پوریا شفیعی ۲۴ اردیبهشت ۱۳۹۹، ۱۹:۲۰

بله اگر طرف مقابل یه ویوی ساده باشه. بله کاملا. حتی من برای امتحان، یه باتن ساده جایگزین یکی از ویوگروپها کردم و از درون باتن، صفت layout_below رو براش نسبت به ویوگروپ مجاور که ScrollView به همراه محتواش هست، ست کردم زیر محتوای ویوگروپ ScrollView مخفی میشه(هر چند ناچار شدم برای ScrollView یه id ست کنم) ولی به محضی که صفت layout_above رو به بدنه ScrollView منتقل میکنم قشنننگگ همه چیز درست میشه!!!

 

آقا پوریا یه بار خودت در محیطRelative یه محتوا که ویوگروپ روتش ScrollView باشه در کنار باتن ساده امتحان کن. سعی کن با روش بالا اینا رو زیر هم بذاری. ببین اگر صفت layout_above رو درون بدنه ویوگروپ ScrollView بذاری، نسبت به باتن ساده جواب میده؟

 

فایلهای پروژه رو ضمیمه کردم.

 

اگر نتیجه گرفتی لطفا اینجا بهم اطلاع بده .ممنون از تو

پژمان آزاد ۲۵ اردیبهشت ۱۳۹۹، ۰۷:۱۲

سلام آقا پژمان. می‌بخشید ها.

سوالاتتون رو طولانی میپرسید ولی در حین حال گنگ.

واضح‌تر بپرسید فکر کنم بهتر بشه کمک کرد. 

احمد اسماعیلی ۲۶ اردیبهشت ۱۳۹۹، ۱۷:۲۴