Questions tagged «android-layout»

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


8
如何使RelativeLayout与merge and include一起使用?
我已经尝试了几天,通过将多层嵌套转换LinearLayouts为一层RelativeLayout来提高布局效率,遇到了一些我无法找到解决方法的问题。 我搜索了Android初学者组和此站点,但找不到任何可以帮助我解决问题的内容。 我读过一篇博客,您可以将布局与merge和include标签结合使用。所以我有一个带有RelativeLayout根元素的主布局文件。在其中,我有5个include标记,它们引用5个不同的xml布局文件,每个文件的根都有一个merge元素(我的所有合并文件都是相同的,除了其中的id)。 我遇到两个问题,在发布布局代码的简化版本后,我将对其进行解释: 示例主布局文件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/translucent_gray" > <include android:id="@+id/running_gallery_layout_id" layout="@layout/running_gallery_layout" /> <include android:id="@+id/recent_gallery_layout_id" layout="@layout/recent_gallery_layout" android:layout_below="@id/running_gallery_layout_id" /> <include android:id="@+id/service_gallery_layout_id" layout="@layout/service_gallery_layout" android:layout_below="@id/recent_gallery_layout_id" /> <include android:id="@+id/process_gallery_layout_id" layout="@layout/process_gallery_layout" android:layout_below="@id/service_gallery_layout_id" /> </RelativeLayout> 样本包含的合并文件: <?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android"> <TextView style="@style/TitleText" android:id="@+id/service_gallery_title_text_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="@string/service_title" /> <Gallery android:id="@+id/service_gallery_id" …

8
如何以编程方式圆角设置随机背景颜色
我想绕过一个视图的各个角落,并根据运行时的内容更改视图的颜色。 TextView v = new TextView(context); v.setText(tagsList.get(i)); if(i%2 == 0){ v.setBackgroundColor(Color.RED); }else{ v.setBackgroundColor(Color.BLUE); } v.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); v.setPadding(twoDP, twoDP, twoDP, twoDP); v.setBackgroundResource(R.drawable.tags_rounded_corners); 我希望设置一个drawable,并且颜色会重叠,但是它们不会重叠。我执行的第二个是背景。 有什么方法可以通过编程方式创建此视图,同时要记住,背景颜色要等到运行时才能确定? 编辑:我现在只在红色和蓝色之间交换以进行测试。以后,用户可以选择颜色。 编辑: tags_rounded_corners.xml: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <corners android:bottomRightRadius="2dp" android:bottomLeftRadius="2dp" android:topLeftRadius="2dp" android:topRightRadius="2dp"/> </shape>

7
在Android中使用负边距是一种不好的做法吗?
负边距演示: 场景 通过为其中一个视图设置负边距来重叠视图,以使其侵入另一视图的边界框。 思想 如果布局应该重叠,它似乎可以按照您期望的方式工作。但是我不想在不知情的情况下遇到更大的问题。模拟器,物理设备,用它命名,当您使用负边距时,所有内容似乎都可以正常工作,一个视图会侵入另一个视图的边界框,并且取决于在布局中声明的方式,该视图将位于另一个视图的上方或下方。 我还知道,自API 21以来,我们可以设置translationZ和elevation 属性以使视图显示在其他视图之上或之下,但是我主要担心的是,在layout_margin属性的文档中明确指定了边距值应为正,我引用: 摘录: 在此视图的左侧,顶部,右侧和底部指定额外的空间。此空间超出了此视图的范围。保证金值应为正。必须是尺寸值,该尺寸值是一个浮点数,后跟一个单位,例如“ 14.5sp”。可用的单位是:px(像素),dp(与密度无关的像素),sp(根据首选字体大小缩放的像素),(英寸),mm(毫米)... 在未来的几年,因为最初提出这个问题,我还没有切缘阴性的任何问题,并尽量避免使用它们尽可能多地,但并没有遇到任何问题,所以即使文档指出,我不是太担心它。


14
Android:无法将@ drawable / picture转换为drawable
在我的drawable文件夹中,我有一些图像,它们都引用完美,但是当我尝试在同一文件夹中添加大小完全相同的其他图像,并尝试引用它时,会出现错误“无法转换@可绘制图片/图片绘制成可绘制图片”。我尝试过使用不同名称的同一张图片,但它一直在给我该错误。我也在不同的XML布局和相同的东西中尝试过。您还可以看到图片的名称分别是“ jack”,“ abc”,“ question_mark”,严格来说,可以使用哪些字符的规则仍然存在,但错误消息不断出现。谢谢任何关于如何解决问题的建议。 无法将@ drawable / picture转换为drawable



5
Android-在LinearLayout中水平居中放置TextView
我有以下基本布局 <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:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/title_bar_background"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textAppearance="?android:attr/textAppearanceLarge" android:padding="10dp" android:text="HELLO WORLD" /> </LinearLayout> <LinearLayout> 看起来xml是正确的,但文本在左侧对齐。textview占据了父级的整个宽度,并且将textview设置为居中。不确定是什么问题...

11
在Android屏幕上更改对话框的位置
我AlertDialog在Activity中做了一个简单的说明: View view = layoutInflater.inflate(R.layout.my_dialog, null); AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this) .setView(view) .create(); infoDialog.show(); 使用以上代码,对话框将显示在屏幕中心(大约)。 我想知道,如何自定义对话框位置以使其显示在顶部操作栏下方?(是否有改变重力或对话框的内容?)以及如何根据我的代码进行操作?

19
NestedScrollView中的ViewPager
我需要创建一个类似于Google Newsstand的界面,该界面是一种在折叠的标题(垂直滚动)上的ViewPager(水平滚动)。我的要求之一是使用Google IO 2015上提供的新设计支持库。(http://android-developers.blogspot.ca/2015/05/android-design-support-library.html) 基于Chris Banes(https://github.com/chrisbanes/cheesesquare)创建的示例,我已经达到了可以执行折叠行为的程度,但是具有基本的LinearLayout(无水平滚动)。 我试图用ViewPager替换LinearLayout,但出现黑屏。我玩过:宽度,重量和各种视图组,但是..仍然是空白屏幕。似乎ViewPager和NestedScrollView彼此不喜欢。 我通过使用Horizo​​ntalScrollView尝试了一种解决方法:它可以工作,但是我放弃了PagerTitleStrip功能的好处,也没有将注意力集中在单个面板上(我可以在两个面板之间水平停​​止)。 现在,我不再有任何想法,如果有人可以引导我找到解决方案... 谢谢 这是我最新的布局文件: <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="@dimen/header_height" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="match_parent" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <include layout="@layout/part_header" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_collapseMode="parallax"/> <android.support.v7.widget.Toolbar android:id="@+id/activity_main_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:id="@+id/activity_main_nestedscrollview" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v4.view.ViewPager …

7
Android设计库-浮动操作按钮填充/页边距问题
我正在使用Google设计库中新的FloatingActionButton,但遇到了一些奇怪的填充/边距问题。该图像(启用了开发者布局选项)来自API 22。 从API 17开始 这是XML <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_gravity="bottom|right" android:layout_marginLeft="16dp" android:layout_marginRight="20dp" android:layout_marginTop="-32dp" android:src="@drawable/ic_action_add" app:fabSize="normal" app:elevation="4dp" app:borderWidth="0dp" android:layout_below="@+id/header"/> 为什么API 17中的FAB这么大的填充/边距明智的选择?

5
ConstraintLayout:以编程方式更改约束
我需要帮助ConstraintSet。我的目标是在代码中更改视图的约束,但是我无法弄清楚如何正确执行此操作。 我有4 TextView秒一ImageView。我需要将ImageView约束设置为之一TextView。 check_answer4 = (TextView) findViewById(R.id.check_answer4); check_answer1 = (TextView) findViewById(R.id.check_answer1); check_answer2 = (TextView) findViewById(R.id.check_answer2); check_answer3 = (TextView) findViewById(R.id.check_answer3); correct_answer_icon = (ImageView) findViewById(R.id.correct_answer_icon); 如果第一个答案是正确的,我需要的一组约束ImageView来 app:layout_constraintRight_toRightOf="@+id/check_answer1" app:layout_constraintTop_toTopOf="@+id/check_answer1" 如果第二个答案是正确的,我需要将约束设置ImageView为 app:layout_constraintRight_toRightOf="@+id/check_answer2" app:layout_constraintTop_toTopOf="@+id/check_answer2" 等等。


7
加载数据后如何防止滚动视图滚动到Web视图?
所以我有一个令人着迷的问题。尽管我没有手动或以编程方式滚动视图,但加载内部数据后,WebView仍会自动滚动到。 我在viewpager中有一个片段。当我第一次加载寻呼机时,它会按预期工作,并且显示所有内容。但是,一旦我“翻转页面”,数据就会加载,并且WebView会弹出到页面顶部,将其上方的视图隐藏起来,这是不希望的。 有谁知道如何防止这种情况的发生? 我的布局看起来像这样: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/background" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/article_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginBottom="2dp" android:text="Some Title" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="@color/article_title" android:textStyle="bold" /> <LinearLayout android:id="@+id/LL_Seperator" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:background="@color/text" android:orientation="horizontal" > </LinearLayout> <WebView android:id="@+id/article_content" android:layout_width="match_parent" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:layout_height="wrap_content" …

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.