我可以在一个frameLayout中插入两个frameLayout吗? 我尝试了这段代码但它不起作用!!!
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal" >
<FrameLayout
android:id="@+id/titles"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/details"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="2" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="horizontal" >
<FrameLayout
android:id="@+id/details1"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/details2"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
当我点击一个元素时,我想要打印detail1。我想detail1已在细节下创建,所以我看不到它?
任何人都可以帮忙吗?
我想要的是:
答案 0 :(得分:1)
以下是答案:
<?xml version="1.0" encoding="utf-8"?>
<!--
Top-level content view for the layout fragment sample. This version is
for display when in landscape: we can fit both titles and dialog.
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="horizontal" >
<FrameLayout
android:id="@+id/titles"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/details"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="2" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="horizontal" >
<FrameLayout
android:id="@+id/titles1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/details1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/details2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
</RelativeLayout>
我得到了很好的结果:) 感谢每个人的帮助,谢谢
答案 1 :(得分:0)
如果所有人的宽度都是0px,那么你会看到什么?并且不要使用px,请使用dip。无论如何,我不知道你想要达到什么目的
[删除了我的回答]
答案 2 :(得分:0)
我认为问题在于你还没有完全理解如何使用layout_weight。并且您必须更好地跟踪与您设计中的不同layout_weights相关联的视图系列(父级和子级)。
我不完全确定应该如何工作,但我认为您希望左侧菜单始终可见,然后根据用户选择的内容动态显示更多详细信息。您还希望地图始终部分可见吗?
将一些执行上述操作的代码放在一起。使用代码,你可能会了解它是如何工作的。如果您在理解代码时遇到问题或者我误解了您想要的内容,请告诉我。
<强> main.xml中强>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:orientation="vertical"
android:background="@android:color/white"
>
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Menu"
android:textColor="@android:color/black"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Show Details"
android:onClick="showdetails" />
</LinearLayout>
<FrameLayout
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="2.0"
>
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher" />
<LinearLayout
android:id="@+id/DetailsLinearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="gone"
>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:text="Details"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@android:color/black"
android:background="@android:color/white" />
<!-- This view is only here to prevent textView2 from completly
covering the underlying picture -->
<View
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1.0" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
<强>的java 强>
package com.test.insertframelayoutinsideanotherframelayout;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
public class InsertframelayoutinsideanotherframelayoutActivity extends Activity {
LinearLayout detailsLinearLayout;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
detailsLinearLayout = (LinearLayout) findViewById(R.id.DetailsLinearLayout);
}
public void showdetails(View v){
if (detailsLinearLayout.getVisibility() == View.GONE){
detailsLinearLayout.setVisibility(View.VISIBLE);
}
else {
detailsLinearLayout.setVisibility(View.GONE);
}
}
}