Questions tagged «android-layout»

布局定义了用户界面的视觉结构,例如活动,片段或应用程序小部件的UI。

10
无法使自定义DialogFragment在Fragment上透明
我需要在一个片段上创建一个对话框(占用整个屏幕)。该对话框必须是一个浮动对话框,将其放置在片段上方,而片段在片段外部变暗。 对于自定义对话框,无论我做什么,我都有一个具有弯曲边缘的linearLayout,该对话框的所有侧面都带有黑色边框(非常小)。我已经尽一切努力使它透明并消失(以便所有对话框只是线性布局-弯曲框) 对于DialogFragment,这就是我对onCreateView的要求 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ LinearLayout layout =(LinearLayout)inflater.inflate(R.layout.custom_dialog, null); LinearLayout item = (LinearLayout)layout.findViewById(R.id.display_item); populateItemData(item, inflater); return layout; } custom_dialog只是将android:backgroung设置为#000000的LinearLayout 这是我自定义对话框的样式 <style name="CustomDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:alwaysDrawnWithCache">false</item> <item name="android:windowContentOverlay">@null</item> </style> 我尝试了这种风格的各种组合(从我在网上看到的内容),我无法摆脱那种讨厌的黑色边框,如果将LinearLayout背景设置为除其他以外的其他颜色,则可以将其绘制为白色或其他任何颜色#000000 ... 我实际上花了3-4个小时,希望其他人能帮忙...

7
错误:渲染问题android.support.v7.internal.widget.ActionBarOverlayLayout找不到以下类
我只是android应用程序开发的初学者。当我在Android Studio 1.1.0上创建新项目时,它放弃了此错误“ 渲染问题找不到以下类android.support.v7.internal.widget.ActionBarOverlayLayout ” 现在,我已经在Google上进行了搜索,发现大多数人可能提供了3种解决方案。 他们说: 将api(从预览窗口窗格)从22更改为21,或者 将应用程序主题从“项目主题”更改为任何其他主题。 确保在项目结构->依赖项中已导入正确的appcompat-v7库, 请参考以下步骤:将支持库功能项目标识符添加到“依赖项”部分。例如,要包含appcompat项目,请在依赖项部分中添加编译“ com.android.support:appcompat-v7:18.0.+”,如以下示例所示: dependencies { ... compile "com.android.support:appcompat-v7:18.0.+" } 注意:我的android支持库是最新的(使用SDK Manager安装)。 按照前两个步骤,删除了错误。但是我觉得这些不是永久性的解决方案,第二步似乎只是一个临时解决方法。我也对第一步感到怀疑,如果要消除错误,我们将api从22更改为21,那么最后,我们的应用程序将无法在Android 5.1.1(API 22)中运行,它将仅限于Android 5.0仅.1以下(API 21)。我的怀疑合法吗?关于第三步,这是否是该问题的永久解决方案? PS:很抱歉标签不匹配,由于网站的声誉,不允许添加确切的标签

4
获取视图边距
如何从活动中获取视图的边距值?视图可以是任何类型。 经过一些搜索,我找到了获取视图填充的方法,但是在Margin上找不到任何内容。有人可以帮忙吗? 我尝试过这样的事情 ViewGroup.LayoutParams vlp = view.getLayoutParams(); int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin; 这可行,但是在上面的代码中,我假定视图为LinearLayout。但是,margin即使我不知道视图类型,也需要获取属性。

4
使用ListAdapter填充ScrollView布局中的LinearLayout
我面临一个非常常见的问题:我布置了一个活动,现在事实证明它应该在其中显示一些项目ScrollView。正常的方式做到这一点是使用现有的ListAdapter,它连接到一个ListView和BOOM我有我的产品清单。 但是您不应该在其中嵌套嵌套ListView,ScrollView因为它会使滚动变得更糟-即使Android Lint也抱怨它。 所以这是我的问题: 如何将a连接ListAdapter到a LinearLayout或类似的东西? 我知道此解决方案无法扩展很多项目,但是我的列表很短(<10个项目),因此实际上不需要重用视图。在性能方面,我可以将所有视图直接放入LinearLayout。 我想到的一种解决方案是将现有的活动布局放在的headerView部分中ListView。但这感觉就像在滥用这种机制,因此我正在寻找更清洁的解决方案。 有想法吗? 更新:为了激发正确的方向,我添加了一个示例布局来展示我的问题: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/news_detail_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:visibility="visible"> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFF" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingLeft="@dimen/news_detail_layout_side_padding" android:paddingRight="@dimen/news_detail_layout_side_padding" android:paddingTop="@dimen/news_detail_layout_vertical_padding" android:paddingBottom="@dimen/news_detail_layout_vertical_padding" > <TextView android:id="@+id/news_detail_date" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center_horizontal" android:text="LALALA" android:textSize="@dimen/news_detail_date_height" android:textColor="@color/font_black" /> <Gallery android:id="@+id/news_detail_image" android:layout_height="wrap_content" android:layout_width="fill_parent" android:paddingTop="5dip" android:paddingBottom="5dip" /> …

11
如何在不将焦点设置到另一个控件的情况下删除焦点?
我喜欢界面直观。每个屏幕都应该自然而顺畅地将用户引导至应用程序的下一步。除非如此,否则我将努力使事情变得尽可能混乱和困惑。 开玩笑 :-) 我有3个TableRows,每个s包含一个只读且不可聚焦的EditText控件,然后在其右侧有一个按钮。每个按钮启动相同的活动,但带有不同的参数。用户在那里进行选择,子活动结束,EditText并使用用户的选择填充相应内容。 这是经典的级联价值机制。每个选择都会缩小下一个选择的可用选项,以此类推。因此,我禁用了下一行每一行的两个控件,直到当前行的EditText包含一个值为止。 我需要按照优先顺序执行以下两项操作之一: 单击某个按钮后,请立即移开焦点,而无需将焦点设置为其他按钮 活动开始时将焦点设置到第一个按钮 问题在子活动返回后出现;单击的按钮保持焦点。 回复:上面的#1-似乎没有removeFocus()方法或类似的东西 回复:上面的#2-我可以requestFocus()用来将焦点设置到下一行的按钮上,并且在子活动返回后可以使用,但是由于某种原因,它在父活动的中不起作用onCreate()。 我需要在两个方向上都具有UI一致性-子活动完成后没有按钮具有焦点,或者每个按钮是否获得焦点取决于其在逻辑流程中的位置,包括在选择之前的第一个(也是唯一的)活动按钮。

17
如何使DialogFragment宽度变为Fill_Parent
我正在使用一个Android应用程序DialogFragment来显示对话框,但是它的宽度很小。我怎样才能做到这fill_parent一点呢? public class AddNoteDialogFragment extends DialogFragment { public AddNoteDialogFragment() { // Empty constructor required for DialogFragment } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().setTitle(getString(R.string.app_name)); View view = inflater.inflate(R.layout.fragment_add_note_dialog, container); return view; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Dialog dialog = super.onCreateDialog(savedInstanceState); // request a window …

12
将EditText imeOptions设置为actionNext无效
我有一个相当复杂(不是真的)的xml布局文件。视图之一是v1带有两个子控件的LinearLayout():一个EditText(v2)和另一个LinearLayout(v3)。子级LinearLayout依次具有EditText(v4)和ImageView(v5)。 对于EditText v2,我有imeOptions作为 android:imeOptions="actionNext" 但是,当我运行该应用程序时,键盘的输入return未选中next,我希望将其更改为next。我该如何解决这个问题? 另外,当用户单击下一步时,我希望焦点转到EditText v4。我这样做吗? 对于那些确实需要查看一些代码的人: <LinearLayout android:id="@+id/do_txt_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/col6" android:orientation="vertical" android:visibility="gone" > <EditText android:id="@+id/gm_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:background="@drawable/coldo_text" android:hint="@string/enter_title" android:maxLines="1" android:imeOptions="actionNext" android:padding="5dp" android:textColor="pigc7" android:textSize="ads2" /> <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:orientation="horizontal" > <EditText android:id="@+id/rev_text" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:layout_margin="5dp" android:layout_weight="1" android:background="@drawable/coldo_text" android:hint="@string/enter_msg" android:maxLines="2" android:padding="5dp" android:textColor="pigc7" android:textSize="ads2" /> <ImageView android:layout_width="wrap_content" …




17
如何在Android中检测向左或向右滑动?
我EditText在android中有一个视图。在此我想检测向左或向右滑动。我可以使用下面的代码在空白处获取它。但这在我滑动时不起作用EditText。我怎么做?如果我做错了事,请告诉我。谢谢。 使用的代码: switch (touchevent.getAction()) { case MotionEvent.ACTION_DOWN: { oldTouchValue = touchevent.getX(); break; } case MotionEvent.ACTION_UP: { float currentX = touchevent.getX(); if (oldTouchValue < currentX) { // swiped left } if (oldTouchValue > currentX ) { swiped right } break; } }


4
如何使用isInEditMode()在编辑器中使用自定义视图查看布局
当我尝试编辑布局xml时,我必须编辑具有自定义视图的软件,Eclipse对我说: 在Eclipse中显示时,在自定义视图中使用View.isInEditMode()跳过代码 但是我不知道在应用程序中如何以及在哪里必须使用isInEditMode() 我的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" android:background="#ff000000" > <TextView android:id="@+id/result" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:textSize="32dip" android:scrollbars="none" android:lines="1" android:freezesText="true" android:textColor="@color/result" /> <EditText android:id="@+id/input" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="left" android:textSize="28dip" android:scrollbars="none" android:singleLine="true" android:autoText="false" android:imeOptions="flagNoEnterAction|flagNoExtractUi" /> <ListView android:id="@+id/history" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:cacheColorHint="#ff000000" android:choiceMode="singleChoice" android:scrollbarStyle="outsideInset" android:scrollbars="none" /> <calculator.GraphView android:id="@+id/graph" android:layout_width="fill_parent" android:layout_height="0dip" …

16
限制Android上ListView的高度
我想在下方显示一个按钮ListView。问题是,如果ListView扩展位置(添加了项目...),则按钮被推出屏幕。 我尝试了LinearLayout权重(如Android中的建议:为什么视图没有maxHeight?),但是我权重错误或者根本不起作用。 另外,我在某处找到了使用的提示RelativeLayout。在ListView随后将被与按钮上方设置android:layout_abovePARAM。 问题是我不知道以后如何放置按钮。在我发现的示例中,下方的“视图” ListView已使用进行了调整android:layout_alignParentBottom,但我不希望按钮紧贴屏幕底部。 除了使用setHeight方法和所需空间的一些计算外,还有其他想法吗? 编辑: 我得到了很多有用的答案。 bigstone和user639183的解决方案几乎可以完美运行。但是,我必须在按钮底部添加一个额外的填充/边距,因为它仍会被推到屏幕的一半(但随后停止) 如果要将按钮固定在屏幕底部,则只有相对布局的Adinia答案就可以了。这不是我想要的,但对于其他人可能仍然有用。 我最终选择了AngeloS的解决方案,因为它只是创建了我想要的效果。但是,我LinearLayout对按钮周围的做了两个小的更改: 首先,因为我不希望在我的布局任何绝对值,我换android:layout_height="45px"到wrap_content,其工作也很不错。 其次,由于我希望按钮在水平方向居中(仅垂直支持)LinearLayout,因此将android:orientation =“ horizo​​ntal”更改为“ vertical”。 AngeloS在最初的帖子中还说过,他不确定周围的android:layout_weight="0.1"参数是否有效果;我只是试过,实际上确实如此!没有,按钮再次被推出屏幕。LinearLayoutListView

10
使用XML在Android TextView中使用自定义字体
我已将一个自定义字体文件添加到我的资产/字体文件夹中。如何从XML使用它? 我可以通过以下代码使用它: TextView text = (TextView) findViewById(R.id.textview03); Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Molot.otf"); text.setTypeface(tf); 我不能使用android:typeface="/fonts/Molot.otf"属性从XML做到这一点吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.