-1

mDocView 与cramperView 重叠,就好像它在另一个之上一样。我希望 mDocView 在 topHeader 下面。

我的 cramper.xml-

<ViewSwitcher
    android:id="@+id/switcher"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" >

    <Button
        android:id="@+id/backfromreport"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:background="@drawable/btn_black_xml"
        android:padding="10dp"
        android:text="Back"
        android:clickable="true"
        android:onClick="goBack"

        android:textColor="#ffffff"
        android:textSize="16dp" />

    <TextView
        android:id="@+id/messager"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Messager"
        android:singleLine="true"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textStyle="bold" />

</LinearLayout>
</ViewSwitcher>

相关的 Cramper Java 文件:

private View cramperView;
private LinearLayout   topHeader;

@Override
public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
topHeader = (LinearLayout) findViewById(R.id.linearLayout1);
private ReaderView   mDocView = new ReaderView(this); //ReaderView extends AdapterView
cramperView= getLayoutInflater().inflate(R.layout.cramper,null);
RelativeLayout layout = new RelativeLayout(this);
layout.addView(cramperView);
layout.addView(mDocView);
setContentView(layout);
4

2 回答 2

0

正如你所说ViewSwicher的是 inside RelativeLayout,并且你正在使用layout.addView(mDocView)after layout.addView(cramperView),所以它总是会在你的cramp布局ReaderView之后添加(扩展 AdapterView) 。

解决方案是:

在您的 xml 文件中添加RelativeLayout之后。</ViewSwitcher>像这样:

    <RelativeLayout
        android:id="@+id/docViewLayout"
        android:layout_width="1190dp"
        android:layout_height="1284dp"
        android:layout_below="@+id/switcher"
        android:layout_centerHorizontal="true" >
    </RelativeLayout>

在此RelativeLayout您可以调整宽度和高度以使其适合您的布局。

下一步是添加你ReaderViewRelativeLayout,当你动态生成它时,你应该将它添加到onCreate().

     RelativeLayout layout = new RelativeLayout(this);

     RelativeLayout docViewLayout = (RelativeLayout) mButtonsView.findViewById(R.id.docViewLayout);
     docViewLayout.addView(mDocView);

     layout.addView(cramperView);

     setContentView(layout);

希望这可以帮助。

于 2013-05-04T09:36:55.920 回答
0

为视图添加布局参数

RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.FILL_PARENT,
            RelativeLayout.LayoutParams.FILL_PARENT);
rlp.addRule(RelativeLayout.BELOW, R.id.linearLayout1); 
mDocView.setLayoutParams(rlp);

layout.addView(cramperView);
layout.addView(mDocView);
setContentView(layout);
于 2013-05-03T12:25:28.303 回答