Android.support.v4.view.ViewPager
과 함께 사용하는 Fragment
클래스가 있습니다.OnCreateView에서 뷰를 팽창시킬 때, 생성 직후 정확한 크기를 갖는 것으로 간주됩니까?
OnCreateView
에서
, 즉은, 내가 레이블을 만들고 난 동적 레이블의 높이의 비율로 라벨 내부의 글꼴 크기를 설정하려는 다른 페이지를 표시 할 필요가 호출기에 의해 호출된다
class LabelFragment : Android.Support.V4.App.Fragment
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
var v = inflater.Inflate(Resource.Layout.Label, container, false);
float BigFontSize = v.Height/1.5f;
float MediumFontSize = v.Height/5.0f;
float SmallFontSize = v.Height/10.0f;
// Setting font sizes for the children of v
return v;
}
}
이 코드를 작성할 때 은 팽창 직후 올바른 Width
및 Height
을 갖습니다.
실제로이 방법은 에뮬레이터와 일부 장치에서 작동하지만 다른 장치에서는 0 글꼴 크기가 할당되어 레이블 하위 요소가 사라집니다. 즉, v.Height
은 0입니다.
이 코드가 유효합니까? Inflate
에 의해 반환 된 뷰의 치수가 올바른지 여부가 문서화되어 있습니까? 대신 container
에서 높이를 가져야하며, 그렇다면 ViewPager
과 함께 사용할 때 null이 아닌 것으로 문서화됩니까?
안녕하세요, 여기를 참조하십시오 http://stackoverflow.com/questions/33415509/get-height-width-of-imageview-from-android-support-v4-fragmentalways-return-zer 동일한 문제가 있습니다. . 또한 PreDraw는 나를 위해 일하지 않았다; – XTL