爲什麼不能正常工作?在視圖的構造函數中使用View.getParent()
private ScrollView findScrollParent(View v)
{
if(v==null)
{
return null;
}
else if(v instanceof ScrollView)
{
return (ScrollView) v;
}
else
{
return findScrollParent((View)v.getParent());
}
}
CustomView(Context context, AttributeSet as)
{
super(context,as);
ScrollView sv = findScrollParent(this);
}
這是充氣我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:layout_height="wrap_content"
android:layout_width="wrap_content">
<com.myapp.CustomView android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
我想在自定義視圖的滾動視圖的參考。我的findScrollParent方法發現LinearLayout
然後返回null。我在View v
的構造函數中調用這個方法,是這樣的問題嗎?
嗯...這是有道理的。但爲什麼該方法找到LinearLayout父項?我添加了一些代碼來顯示我如何使用該功能。 – you786
另外,據我所知,視圖的構造/實例化是從根視圖向下移動的。如果構造視圖,然後有addView調用它們,那麼我的方法應該工作,不應該嗎? – you786
我還不確定你到底想要達到什麼目的?您的自定義視圖無法添加到視圖組中,因此在構造函數中調用getParent過早。 –