PDA

View Full Version : بر گرداندن MeasureSpec.UNSPECIFIED و مشکلات آن



biodread
پنج شنبه 09 خرداد 1392, 12:31 عصر
سلام
من یه کلاس دارم که از ViewGroup مشتق شده
وقتی من در layout برنامم کلاسم رو داخل یه ScrollView قرار میدم در کلاسم مقدارهای تابع onMeasure رو MeasureSpec.UNSPECIFIED بر میگردونه و من نمینونم در کلاسم محاسبات رو انجام بدم

ولی اگه در داخل ScrollView قرار ندم هیچ مشکلی نیست

بنظر شما علت چیست؟



<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"
android:background="#000000"
tools:context=".MainActivity" >



<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent">

<com.asdeveloper.biolearn.layouts.BioFlowLayout
android:id="@+id/bioFlowLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

</ScrollView>





</RelativeLayout>



ممنون میشم راهنمایی کنید

Modernidea
چهارشنبه 15 خرداد 1392, 15:20 عصر
سلام

منظورتون از کلاسی که از Scroll View مشتق شده چی هست؟!
اگر کد کلاس مربوطه را قرار بدید بهتر میتونیم کمکتون کنیم.

موفق باشید.

biodread
چهارشنبه 15 خرداد 1392, 16:33 عصر
سلام
از viewGroup نه از scrollView
من یه viewGroup دارم که در یه scrollView هست
تونستم حلش کنم

MeasureSpec.UNSPECIFIED موقعی بوجود میاد که parent نتونه اندازه ای به child بده
برای همین شما باید دستی اندازه child رو ست کنید

بازم تشکر بابت توجهت

Modernidea
چهارشنبه 15 خرداد 1392, 18:18 عصر
سلام

پس منظورتون کلاس نبوده، Layout بوده؟ درسته؟

biodread
چهارشنبه 15 خرداد 1392, 20:27 عصر
بله من یک کلاس دارم که از viewGroup ارث بری کرده و چون طول layout که نوشتم زیاده باید بزارم داخل scrollView و بابت همین اون مقدار رو برمیگردوند

Modernidea
چهارشنبه 15 خرداد 1392, 23:37 عصر
من ظاهرا اشتباه کردم!

من در مورد View Class ها چیزی نمیدونستم!
این لینک کاملا توضیح داده: http://developer.android.com/training/custom-views/create-view.html

موفق باشید.

shahin bahari
پنج شنبه 16 خرداد 1392, 12:50 عصر
من هم با view Group کار نکردم اما وقتی یه کلاس رو از view مشتق میکنیم باید تو تابع onMeasure متد setMeasuredDimension(width, height); رو صدا کنیم و اندازه ویو رو به صورت پیکسلی مشخص کنیم.این روش برای من جواب داد (مشتق شده از view ) توی view group هم احتمالا به همین شکل باید باشه!
موقع مقدار دادن تبدیلاتی که واسه تبدیل dp و... به پیکسل صورت میگیره رو فراموش نکنید.منظورم این هست که مقداری که توی فایل layout.xml بهش میدید به صورت واحد های اندروید هست اما تو اون تابع باید با پیکسل ها کار کنید.

biodread
پنج شنبه 16 خرداد 1392, 17:53 عصر
هر چیزی که view بهش add بشه باید جنسش viewoGroup باشه
تمام layout ها از جنس viewoGroup هستن
بله من هم view م سفارشی هست هم layout تم