機能を拡張LinearLayout
およびオーバーライドしonMeasure
、フルレイアウトサイズ(オンスクリーン+オフスクリーン)を返します。このレイアウトを非表示のレイアウトとして使用します
このコードはあなたを始めるかもしれません。
public class YourLayout extends LinearLayout {
private Context myContext;
public YourLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
/*
* Magic!!! Android doesn't draw parts of layout which is offscreen. Since YourLinear layout has some offscreen part
* its offscreen portions didn't get drawn.
* This onMeasure function determines how much pixel of a layout need to be drawn.
* widthMeasureSpec -> Width of YourLayout onscreen
* heightMeasureSpec -> height of YourLayout on screen
* your_view_offscreen_width -> width of offscreen part
* your_view_offscreen_height-> height of offscreen part
* So heightMeasureSpec + your_view_offscreen_height draws complete height of YourLayout whether it is onscreen or offscreen.
* So widthMeasureSpec + your_view_offscreen_width draws complete width of YourLayout whether it is onscreen or offscreen
*/
super.onMeasure(widthMeasureSpec + your_view_offscreen_width, heightMeasureSpec + your_view_offscreen_height);
}
}
これで、このレイアウトを非表示のレイアウトとして使用できます。つまり、xmlを使用してレイアウトしている場合は、次のように使用できます。
<com.your.package.YourLayout layout_width="fill_parent" layout_height="fill_parent"
......
>