আমি জানি না যে কেউ এখনও এই থ্রেডটি পড়ছেন বা না, তবে জেফের সমাধানটি আপনাকে কেবল সেখানে পৌঁছে দেবে (আক্ষরিক অর্থে)। তার onMeasure কী করবে তা হল অর্ধেক পিতামাতার অর্ধেক চিত্র প্রদর্শন করা। সমস্যাটি হ'ল সুপার.অনম্যাসার কল করার আগে setMeasuredDimension
আসল আকারের উপর ভিত্তি করে ভিউতে সমস্ত শিশুকে পরিমাপ করা হবে, তারপরে পুনরায় আকার দেওয়ার পরে কেবলমাত্র অর্ধেকটি কেটে দিন setMeasuredDimension
।
পরিবর্তে, আপনাকে কল করতে হবে setMeasuredDimension
(অন-মেজার ওভাররাইডের জন্য প্রয়োজনীয় হিসাবে) এবং আপনার দর্শনটির LayoutParams
জন্য একটি নতুন সরবরাহ করতে হবে, তারপরে কল করুন super.onMeasure
। মনে রাখবেন, আপনি আপনার LayoutParams
ভিউর পিতামাতার ধরণ থেকে প্রাপ্ত, আপনার দেখার ধরণের নয়।
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth/2, parentHeight);
this.setLayoutParams(new *ParentLayoutType*.LayoutParams(parentWidth/2,parentHeight));
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
আমি বিশ্বাস করি কেবলমাত্র পিতামাতার LayoutParams
সাথে যদি আপনার সমস্যা হয় তবে পিতা-মাতা যদি হয় AbsoluteLayout
(যা অবনমিত তবে এখনও কখনও কখনও দরকারী)।