-1
プログラムでRelativeLayoutを既存のxmlレイアウトに追加できません。 XMLレイアウトのみが表示されます。私のコードの共有プログラムでRelativeLayoutを追加できません
fragment_home.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.timetable.act.MainActivity$PlaceholderFragment"
android:id="@+id/homeLayout"
android:background="@color/white">
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="380dp"
android:layout_marginLeft="240dp"
android:background="@drawable/circle"
android:id="@+id/addEvent"
android:src="@drawable/ic_mode_edit_white_24dp"
android:layout_gravity="right|bottom"
android:contentDescription="@string/hello" />
</RelativeLayout>
PlaceholderFragment.java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = null;
switch (Integer.valueOf(getArguments().get(ARG_SECTION_NUMBER).toString())) {
case 1:
rootView = inflater.inflate(R.layout.fragment_home, container, false);
displyAllEvent(rootView);
break;
case 2:
rootView = inflater.inflate(R.layout.fragment_setting, container, false);
break;
default:
rootView = inflater.inflate(R.layout.fragment_main, container, false);
break;
}
return rootView;
}
private void displyAllEvent(View mainView){
Drawable drawableShadow = ContextCompat.getDrawable(getActivity(),R.drawable.tile_shadow);
RelativeLayout tileLayout = new RelativeLayout(getActivity());
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
tileLayout.setBackground(drawableShadow);
tileLayout.setPadding(R.dimen.tilePadding,R.dimen.tilePadding,R.dimen.tilePadding,R.dimen.tilePadding);
tileLayout.setLayoutParams(rlp);
tileLayout.setId(999);
RelativeLayout.LayoutParams titleLayout = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
TextView titleView = new TextView(getActivity());
titleView.setText("Testing title with test");
titleView.setId(111);
titleView.setTextColor(R.color.white);
titleView.setLayoutParams(titleLayout);
tileLayout.addView(titleView);
RelativeLayout.LayoutParams textLeftLayout = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
textLeftLayout.addRule(RelativeLayout.BELOW, titleView.getId());
TextView startHView = new TextView(getActivity());
startHView.setText("left Text");
startHView.setId(222);
startHView.setTextColor(R.color.white);
startHView.setLayoutParams(textLeftLayout);
tileLayout.addView(startHView);
RelativeLayout.LayoutParams textRightLayout = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
textRightLayout.addRule(RelativeLayout.BELOW, titleView.getId());
textRightLayout.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
textLeftLayout.addRule(RelativeLayout.ALIGN_RIGHT, startHView.getId());
TextView startMView = new TextView(getActivity());
startMView.setText("Right Text");
startMView.setId(333);
startMView.setTextColor(R.color.white);
startMView.setLayoutParams(textRightLayout);
tileLayout.addView(startMView);
RelativeLayout parentView = (RelativeLayout)mainView.findViewById(R.id.homeLayout);
parentView.addView(tileLayout);
}
@MikeM。 (色を黒または他の色に変更することによって)解決するはずです – Zoe
@MikeM Drawableオブジェクト(** tileLayout.setBackground(drawableShadow)**)によって背景色を薄緑色に設定しています –
うーん、OK、 'tileLayout.setPadding()'呼び出しが間違っています。 'R.dimen'はリソースIDであり、実際の値ではありません。実際の値を取得するには、 'getResources()。getDimension(R.dimen.tilePadding)'を使います。 –