我的RelativeLayout
包含TextView
。
我想在onCreateView
方法中以编程方式在现有TextView下添加一个新的TextView,但是当我尝试这样做时会发生的是我以编程方式添加的TextView与现有的TextView重叠。
更多详情如下:
public static class ContentTours extends Fragment{
public static String TOUR_NAME= "tour_info";
View view = getView();
TextView contentTour;RelativeLayout toursView;
public ContentTours(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.tours_view, container, false);
toursView = (RelativeLayout) view.findViewById(R.id.rel_layout);
contentTour = (TextView) view.findViewById(R.id.tours);
contentTour.setText(getArguments().getString("2"));
ViewGroup.LayoutParams stt = contentTour.getLayoutParams();
TextView nt = new TextView(getActivity().getBaseContext());
nt.setText(getArguments().getString("1"));
toursView.addView(nt, new ViewGroup.MarginLayoutParams(stt));
return view;
}
}
我有一个包含TextView的RelativeLayout。 tours_view.xml
:
<RelativeLayout android:id="@+id/rel_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_marginBottom="16dp">
<TextView android:id="@+id/tours" android:clickable="true"
android:background="?android:selectableItemBackground"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:text="Lorem ipsum"/>
</RelativeLayout>
我有一个Fragment
类的原因是tours_view.xml
是我正在应用于另一个FrameLayout
的布局。
答案 0 :(得分:2)
默认情况下,在 RelativeLayout 中,如果没有定义关系,视图会重叠。
您应该为要求做的是在要添加的TextView和已经存在的TextView之间创建关系(规则)。
RelativeLayout.LayoutParams stt = (RelativeLayout.LayoutParams) contentTour.getLayoutParams();
现在,添加规则
stt.addRule(RelativeLayout.BELOW, R.id.tours);
RelativeLayout.BELOW,以便新的TextView低于旧的TextView。希望这会有所帮助。