以下に記載するxmlファイルをJavaコードに置き換えたいと考えいています。
activity_main
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="こいつは画面に表示される"/> </LinearLayout> <LinearLayout android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="left" android:background="#333" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="メニュー" android:textColor="#ff0000"/> </LinearLayout> </android.support.v4.widget.DrawerLayout>
これを実行したときは2つ目のLinearLayoutはサイドメニューに表示されます。
上記のレイアウトをはJavaで実現しようと試みたのですが、サイドメニューに隠れず既に表示された状態となっています。
package com.example.sidemenutest; import android.app.Activity; import android.graphics.Color; import android.support.constraint.ConstraintLayout; import android.support.v4.widget.DrawerLayout; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ScrollView; import android.widget.TextView; public class MainActivity extends Activity { private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT; private final int MP = ViewGroup.LayoutParams.MATCH_PARENT; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); DrawerLayout drawerLayout = new DrawerLayout(this); drawerLayout.setLayoutParams(new DrawerLayout.LayoutParams(MP,WC)); // ConstraintLayout constraintLayout = new ConstraintLayout(this); setContentView(drawerLayout); LinearLayout firstLayout = new LinearLayout(this); firstLayout.setLayoutParams(new LinearLayout.LayoutParams(MP, MP)); firstLayout.setOrientation(LinearLayout.VERTICAL); drawerLayout.addView(firstLayout); TextView textView = new TextView(this); textView.setText("こいつは画面に表示される"); firstLayout.addView(textView, new LinearLayout.LayoutParams(WC, WC)); //こいつがメニューとして隠れてほしいが現状表示されてしまっている LinearLayout secondLayout = new LinearLayout(this); secondLayout.setOrientation(LinearLayout.VERTICAL); secondLayout.setBackgroundColor(Color.RED); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(240, MP); //layout_gravity = "left"相当だと思っている lp.gravity = Gravity.LEFT; secondLayout.setLayoutParams(lp); drawerLayout.addView(secondLayout); TextView secondText = new TextView(this); secondText.setText("メニュー"); secondText.setTextColor(Color.BLUE); secondText.setBackgroundColor(Color.GREEN); secondLayout.addView(secondText,new LinearLayout.LayoutParams(WC,WC)); } }
どの部分を変えれば、activity_mainと同じレイアウトが実現できるのでしょうか。
ご教授の程よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/09 03:57