我有一个通用布局,我附加片段:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back"
android:orientation="vertical" >
<include
android:id = "@+id/login_header"
layout="@layout/header_layout"/>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
我有一个片段,我想在屏幕的右侧显示。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/two_third_width"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_margin="@dimen/small_margin"
android:background="@drawable/stock_price_bg"
tools:context=".FoundItemFragment" >
</RelativeLayout>
布局显示为左对齐而非右对齐。当我为fragment_container FrameLayout着色时,我看到它占据了整个屏幕宽度。我在我的“FoundItemFragment extends Fragment implements OnClickListener”类中附加了带有以下代码的片段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View fragView = null;
try {
fragView = inflater.inflate(layoutID, container, false);
//LoadData(fragView);
} catch (Exception ex) {
ex.printStackTrace();
}
return fragView;
}
传递给此例程的容器参数具有fragment_container布局的id,因此我不会将其附加到可能具有覆盖alignParentRight设置的设置的其他对象。为什么片段显示为左对齐而不是右对齐?
答案 0 :(得分:2)
布局父级应为Relative Layout
,以便alignParentRight
可用。
您正在使用alignParentRight
作为根元素RelativeLayout
答案 1 :(得分:1)
只需将容器xml编辑为
即可<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back" >
<include
android:id = "@+id/login_header"
layout="@layout/header_layout"
android:layout_alignParentTop = "true"/>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:below = "@id/login_header"
android:layout_alignParentRight="true"/>
</LinearLayout>
答案 2 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back"
android:orientation="vertical" >
<include
android:id = "@+id/login_header"
layout="@layout/header_layout"/>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
由于generic
布局保留了片段的容器,因此您应该将片段对齐/放置在那里。
片段视图的放置应在片段特定的xml文件