提升相对布局Android
作者:互联网
我想在相对布局中膨胀相对布局.但是它只是膨胀一次之后它没有膨胀请帮我解决我的代码中的问题.
活动代码
LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout main = (RelativeLayout)findViewById(R.id.passenger_details_layout);
for(int i=0;i<9;i++){
View view = getLayoutInflater().inflate(R.layout.passenger_details_layout, main,false);
main.addView(view);
}
在@Ritaban建议并帮助我做了我所做的
活动代码:
LayoutInflater inflater;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_itineary_page);
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
/*
* LayoutInflater inflater = (LayoutInflater) getBaseContext()
* .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
*/
LinearLayout main = (LinearLayout) findViewById(R.id.main_passenger_details_layout);
for (int i = 0; i < 2; i++) {
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout layout = (RelativeLayout) inflater.inflate(
R.layout.passenger_details_layout, main, false);
main.addView(layout, i);
}
RelativeLayout lay = (RelativeLayout) findViewById(R.id.thingstoshowbelow);
RelativeLayout.LayoutParams params = (android.widget.RelativeLayout.LayoutParams) lay
.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.main_passenger_details_layout);
lay.setLayoutParams(params);
lay.setVisibility(View.VISIBLE);
}
main.xml中
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_scroll_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imgLogo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="5dip"
android:padding="3dip"
android:src="@drawable/logo_demo" />
<ScrollView
android:id="@+id/main_scroll_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/imgLogo" >
<RelativeLayout
android:id="@+id/main_ScrollView_Container"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/trip_details_main"
android:layout_width="fill_parent"
android:layout_height="70dp"
android:background="@drawable/flight_detail"
android:gravity="center_vertical" >
<TextView
android:id="@+id/trip_locations"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:text="Delhi to Hydrabad"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/depart_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/trip_locations"
android:layout_marginLeft="5dp"
android:text="18 Sep 2013"
android:textColor="#FFFFFF"
android:textSize="15sp" />
<ImageView
android:id="@+id/imgRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="12dp"
android:src="@drawable/cal" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/travel_itin_header"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_below="@+id/trip_details_main"
android:layout_marginTop="2dp"
android:background="@drawable/gray"
android:gravity="center_vertical" >
<TextView
android:id="@+id/itinerary_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="90dp"
android:layout_marginTop="5dp"
android:text="Itinerary Details"
android:textColor="#FFFFFF"
android:textSize="15sp"
android:textStyle="bold" />
</RelativeLayout>
<LinearLayout
android:id="@+id/main_passenger_details_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/travel_itin_header"
android:layout_marginTop="2dp"
android:orientation="vertical" >
</LinearLayout>
<RelativeLayout
android:id="@+id/thingstoshowbelow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/passenger_details_layout"
android:visibility="gone" >
<RelativeLayout
android:id="@+id/depart_flight_details_duration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="2dp"
android:background="@drawable/small_search" >
<ImageView
android:id="@+id/flight_depart_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:padding="3dip"
android:src="@drawable/dep" />
<TextView
android:id="@+id/depart_return_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/flight_depart_image"
android:layout_marginLeft="12dp"
android:layout_marginTop="10dp"
android:layout_toLeftOf="@+id/arrow_image"
android:layout_toRightOf="@+id/flight_depart_image"
android:text="Delhi to Hydrabad"
android:textColor="#FFFFFF"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:id="@+id/one_way_date_and_duration_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/depart_return_location"
android:layout_marginLeft="12dp"
android:layout_toRightOf="@+id/flight_depart_image"
android:text="18 Sep 2013 09:45 | Duration 2:45"
android:textColor="#FFFFFF"
android:textSize="12sp" />
<ImageView
android:id="@+id/arrow_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/depart_return_location"
android:layout_alignParentRight="true"
android:layout_marginRight="12dp"
android:layout_marginTop="10dp"
android:src="@drawable/arrow2" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/travel_agency_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/depart_flight_details_duration"
android:layout_marginTop="2dp"
android:background="@drawable/travelagency_bg" >
<TextView
android:id="@+id/travel_agency_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:text="Travel Agency"
android:textColor="#676767"
android:textSize="15sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/tarvel_agency_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/travel_agency_header"
android:layout_marginTop="2dp" >
<ImageView
android:id="@+id/agent_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:src="@drawable/uniglobe_logo" />
<ImageView
android:id="@+id/mobile_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/agent_logo"
android:src="@drawable/mobile" />
<ImageView
android:id="@+id/at_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/mobile_logo"
android:src="@drawable/at" />
<ImageView
android:id="@+id/email_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/at_logo"
android:src="@drawable/at" />
<TextView
android:id="@+id/travel_agency_address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/agent_logo"
android:layout_marginLeft="5dp"
android:text="XXXXXXXXXXXXXXXXXXXX"
android:textColor="#676767" />
<TextView
android:id="@+id/travel_agency_fax"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/travel_agency_address"
android:layout_marginLeft="5dp"
android:layout_marginTop="2dp"
android:text="Fax : 2345678"
android:textColor="#676767" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/genral_remarks_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tarvel_agency_details"
android:layout_marginTop="2dp"
android:background="@drawable/general_remar" >
<TextView
android:id="@+id/genral_remark_header_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:text="Genral Remarks"
android:textColor="#676767"
android:textSize="15sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/genral_remark_text_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/genral_remarks_header"
android:layout_marginTop="2dp" >
<TextView
android:id="@+id/genral_remark_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:gravity="center_vertical"
android:text="HAVE A NICE FLIGHT"
android:textColor="#676767" />
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
</RelativeLayout>
</ScrollView>
解决方法:
使用线性布局作为父视图并给出android:orientation =“vertical”.相对布局是一种布局,其中子项的位置相对于彼此或父项描述.如果要使用相对布局,则必须使用addrule属性,否则将覆盖前一个子项的所有子项.
例如:
<Linearlayout
android:id="@+id/passenger_details_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/travel_itin_header"
android:layout_marginTop="2dp"
android:gravity="center_vertical"
android:orientation = "vertical" >
</Linearlayout>
在活动中:
LayoutInflater inflater = (LayoutInflater)getBaseContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout main =(LinearLayout)findViewById(R.id.passenger_details_layout);
for(int i=0;i<9;i++){
View view = inflater.inflate(R.layout.passenger_details_layout, null);
main.addView(view);
}
标签:android,android-inflate 来源: https://codeday.me/bug/20190823/1695862.html