1

この問題があります。アクティビティがあります:

public class MyActivity extends Activity
{
   public View m_top_overlay;
   private MyFrameLayout m_preview;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity);

    m_preview = (MyFrameLayout) findViewById(R.id.my_preview);  
    m_top_overlay = (View) findViewById(R.id.top_overlay);
    m_frame_preview.setParent(this);
}
   ...

およびxml:

<com.myexample.MyFrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_preview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1" >

    <View             
        android:id="@+id/top_overlay"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_gravity="top"
        android:background="#FFFFFF"
        />
<com.myexample.MyFrameLayout />

次に、FrameLayout からカスタム ビューを継承します。

public class MyFrameLayout extends FrameLayout
{   
    private MyActivity m_myActivity;

<constructors...>

    public void setParent(MyActivity _activity)
    {
        m_myActivity = _activity;
    }

    @Override
    protected void onLayout (boolean changed, int left, int top, int right, int bottom)
    {
        super.onLayout(changed, left, top, right, bottom);
        ViewGroup.LayoutParams params = m_myActivity.m_top_overlay.getLayoutParams();
        params.height = 200;
        m_myActivity.m_top_overlay.setLayoutParams(params);
    }

したがって、私が望むのは、Java コードからビュー (m_top_view) の高さを設定することです。200 という値は単なる例です。計算してみます。しかし、私が説明した方法は機能しません。

4

0 に答える 0