Articles of 布局

Android布局:如何避免嵌套的权重?

家伙。 我试图编写一个包含4个不同的片段,一个列表片段和三个细节相关片段的活动的布局。 我试图让它看起来像下图 使用LinearLayout,我可以得到列表片段和详细区域(其他三个片段应该是的位置)之间的30/70比率。 但是,当处理这三个片段时,我真的不知道如何将它们保持在我期望它们的比例之内,因为您不能使用weightSum属性来嵌套布局。 我一直在使用RelativeLayouts,但不想用'wrap_content'值,因为一些内容比其他内容更大,打破了我试图实现的外观。 有没有办法做到这一点? 我知道TableLayouts,但AFAIK他们就像HTML表格:用于数据,而不是作为布局工具…

我怎样才能创build一个完全在XML中的标签布局?

我试图在布局中制作标签。 我发现了很多使用TabWidget , TabWidget的示例和教程,但它们都涉及以下之一: 活动中的Java代码 单独的活动为每个标签 为每个选项卡单独的片段 标签内的内容是静态的,所以我应该能够将所有内容都包含在纯XML中。 无论如何要做到这一点?

如何防止其他视图被推出屏幕

这是XML的例子 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_margin="5dip" android:background="#FF992222"> <ScrollView android:layout_height="wrap_content" android:layout_width="fill_parent"> <LinearLayout android:layout_height="wrap_content" android:orientation="vertical" android:layout_width="fill_parent"> <TextView android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"></TextView> </LinearLayout> </ScrollView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_margin="5dip" android:background="#FF555555"> <TextView android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content" android:textSize="24dip"></TextView> </LinearLayout> </LinearLayout> 结果是这样的: 如果你注意到,上面的LinerLayout中的文本被包裹在LinearLayout和ScrollView中。 如果上面的内容保持添加,它会看起来像这样 底部Linearlayout将被推出屏幕之前,ScrollView变成活动,并使第一个内容成为可滚动的….我不希望发生这种情况… 我应该怎么做,使底部视图之前的滚动视图被推出这样的屏幕: (这是编辑的图像,而不是由Android布局编辑器创build) 希望这个问题清楚。谢谢:)

在Android上禁用自动布局更改

我已经做了一个应用程序,我已经testing过了,在我的手机上没事。 但是,当我将.apk文件发送给手机语言为RTL的其他人时,整个布局破坏了,所有的事情都搞砸了。 我的问题是 – 如何强制我的应用程序只使用LTR并禁用自动布局更改打破我的整个应用程序devise?

如何删除对话框边距?

我试图创build一个自定义对话框来显示屏幕底部的值列表。 我如何删除对话框边距? 我要这个… 我有这个… 对话框代码: Dialog d = new Dialog(this); d.requestWindowFeature(Window.FEATURE_NO_TITLE); d.setContentView(R.layout.dialog_options); Window window = d.getWindow(); WindowManager.LayoutParams wlp = window.getAttributes(); wlp.width = WindowManager.LayoutParams.MATCH_PARENT; wlp.gravity = Gravity.BOTTOM; window.setAttributes(wlp); d.show(); 解决了! 更好的scheme: <style name="BottomOptionsDialogTheme" parent="Theme.AppCompat.Light.Dialog"> <item name="android:windowBackground">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">false</item> <item name="android:layout_margin">0dp</item> <item name="android:padding">0dp</item> <item name="android:layout_gravity">bottom</item> <item name="colorPrimary">@color/orange_dark</item> <item name="colorPrimaryDark">@color/orange_dark</item> <item name="colorAccent">@color/gray_light</item> </style> 并使用新的对话框(上下文,R.theme.BottomOptionsDialogTheme);

如果最初设置为不可见,则android setVisibility不会显示

我有一个占据全屏的表面。 点击一个button,我想另一个布局出现(设置types的东西)。 如果我首先看到覆盖层,那么我可以将其隐藏起来,然后再次看到没有任何问题。 但是如果我从无形开始的话,我再也看不到它了。 代码如下: <?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.opengl.GLSurfaceView android:id="@+id/glPlaySurface" android:layout_width="match_parent" android:layout_height="match_parent" > </android.opengl.GLSurfaceView> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:orientation="horizontal" > <RadioButton android:id="@+id/btnRotate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:checked="true" android:text="R" android:textColor="#000" /> <RadioButton android:id="@+id/btnPan" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:text="P" android:textColor="#000" /> </RadioGroup> <Button android:id="@+id/btnLights" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginLeft="15dp" android:layout_toRightOf="@+id/radioGroup1" android:text="Lights" /> <RelativeLayout […]

ActionBar带有旋转片段的选项卡

我用下面的ActionBar和两个Tab来构build一个应用程序。 一切工作正常,如果设备/模拟器不旋转。 如果旋转,标签状态自动切换到tab1(正常,因为onCreate被调用),但内容不会被改变。 如果我在新的方向select一个选项卡,从选定的Fragment onCreateView()方法被调用,但视图不会得到更新(保持总是相同的)。 有小费吗? 代码。 主要活动: ActionBar actionbar = getActionBar(); actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.Tab ATab = actionbar.newTab().setText(R.string.player); ActionBar.Tab BTab = actionbar.newTab().setText(R.string.stations); Fragment AFragment = new AFragment(); Fragment BFragment = new BFragment(); PlayerTab.setTabListener(new MyTabsListener(AFragment)); StationsTab.setTabListener(new MyTabsListener(BFragment)); actionbar.addTab(ATab); actionbar.addTab(BTab); 使用显示简单文本视图的相同标签。 textview简单说哪个选项卡被选中。 片段: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for […]

RelativeLayout的子项不填充RelativeLayout的高度

我有一个ListView的填充RelativeLayouts。 这些RelativeLayouts的内容可以改变,从而分别改变它们的高度。 在每个RelativeLayout上,我在布局的左侧有一个与布局高度相匹配的垂直条。 这是一个类似的外观 – > 链接 虽然由于某种原因,我正在使用的视图对象没有扩大到布局的高度。 我究竟做错了什么? <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/post" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/column_post_selector" android:orientation="horizontal" > <!– Status bar (THIS ISN'T FILLING TO PARENTS' HEIGHT) –> <View android:id="@+id/status" android:layout_width="3dp" android:layout_height="fill_parent" android:layout_alignLeft="@id/post" android:layout_marginBottom="2dp" android:layout_marginTop="2dp" android:background="#33B5E5" /> <ImageView android:id="@+id/thumbnail" android:layout_width="80dip" android:layout_height="80dip" android:layout_toRightOf="@id/status" android:contentDescription="@string/empty" android:layout_marginRight="5dp" android:scaleType="fitStart" /> <!– Title –> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" […]

这个RelativeLayout布局或其LinearLayout父项是无用的

我正在开发一个Android 3.1。 和以上申请。 在一个活动中,我dynamic地生成其布局。 我使用formdetail.xml作为contentview: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.formdetail); Bundle extras = getIntent().getExtras(); if (extras != null) { currentFormId = extras.getString("FormId"); } } formdetail.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/detailLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/downloadFormsButton" android:enabled="false" android:layout_alignParentLeft="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="@string/download_forms_button" /> <TextView android:id="@+id/formErrorMsg" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" […]

Android背景+button的文本+图标

我想有一个图像设置为背景上的文字和左侧的文字图标。 在iPhone中很容易,但无法弄清楚如何在Android上做到这一点,可以resize的button,并保持图标+文本的位置和距离。 苹果手机: Android我有这个: 这个xml代码是: <Button android:id="@+id/btSettings" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/tvWhatever" android:layout_centerHorizontal="true" android:layout_marginBottom="20dp" android:background="@drawable/bt_general" android:drawableTop="@drawable/settings_selected" android:text="@string/settings" android:textColor="#000000" /> 从这里拿了代码。 如果我使用android:drawableLeft ,那么图标会转到最左边的部分。 如果我开始玩半硬编码的填充,比我会有不同的看比较devives:(电话和桌子) 如果我添加android:gravity="left|center_vertical"比它看起来像这样: 文本是可变的:当用户改变语言时它会改变。 如何正确地做到这一点? 我不想downvote任何人的答案,但请阅读这个问题,并不build议我已经尝试了。 也告诉硬编码的修复程序不能正常工作。 这不是一个家庭作业,而是一个商业软件的一部分。 这里是答案的build议代码: <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/bt_general" android:padding="20dip" > <ImageView android:id="@+id/xIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="10dip" android:src="@drawable/settings_selected" /> <TextView android:id="@+id/xSettingsTxt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="@string/settings" android:textColor="#000000" /> </RelativeLayout> 你觉得Galaxy S4上的android:layout_marginLeft="10dip"怎么样? 这是一个预览: […]