通过为其中一个设置负边距来重叠视图,以便它侵入另一个视图的边界框.
它似乎按照你期望的方式工作,如果他们应该重叠布局.但是我不想在不知不觉中做不好的事情遇到更大的问题.模拟器,物理设备,你命名它,当你使用负边距时,一切似乎都正常工作,一个视图侵入另一个视图边界框,并取决于它在布局中声明的方式,它将在另一个视图的上方或下方.
我也知道,自API 21以来我们可以设置translationZ和elevation 属性使视图显示在其他视图的上方或下方,但我的关注基本上来自这样一个事实,即在layout_margin属性的文档中明确指出边缘值应为正,让我引述:
摘录:
指定此视图左侧,顶部,右侧和底部的额外空间.这个空间超出了这个视野的范围.保证金价值应为正数.必须是维值,这是一个附加单位的浮点数,例如"14.5sp".可用的单位是:像素(像素),DP(密度无关的像素),SP(基于优选的字体大小缩放的像素),in(英寸),(毫米)...
在未来的几年,因为最初提出这个问题,我还没有切缘阴性的任何问题,并尽量避免使用它们尽可能多地,但并没有遇到任何问题,所以即使文档指出,我不是太担心它.
我正在使用Google Design Library中新的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"/>
Run Code Online (Sandbox Code Playgroud)
为什么API 17中的FAB如此大得多?
xml android android-layout floating-action-button android-design-library
工具栏背景为深色,我希望文本和后退箭头为白色.我试过跟随,但它不起作用.
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/blue</item>
<item name="colorPrimaryDark">@color/blue_darker</item>
<item name="colorAccent">@color/purple</item>
<!-- item name="android:textColorPrimary">@color/white</item--> // I don't want to set this, changes everywhere.
<item name="android:textColorSecondary">@color/white</item>
<item name="android:toolbarStyle">@style/AppTheme.ToolbarStyle</item>
<item name="toolbarStyle">@style/AppTheme.ToolbarStyle</item>
<item name="drawerArrowStyle">@style/AppTheme.DrawerArrowStyle</item>
</style>
<style name="AppTheme.ToolbarStyle" parent="Base.Widget.AppCompat.Toolbar">
<!--<item name="actionOverflowButtonStyle">@style/AppTheme.OverflowButtonStyle</item>-->
<item name="android:textColor">@color/white</item> // doesn't work
<item name="titleTextAppearance">@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item>
<item name="android:titleTextAppearance">@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item>
<item name="subtitleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我创建了一个按钮,我想为该按钮添加涟漪效果!
我创建了一个按钮bg XML文件:(bg_btn.xml)
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:startColor="#FFFFFF" android:endColor="#00FF00" android:angle="270" />
<corners android:radius="3dp" />
<stroke android:width="5px" android:color="#000000" />
</shape>
Run Code Online (Sandbox Code Playgroud)
这是我的涟漪效应文件:(ripple_bg.xml)
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="#f816a463"
tools:targetApi="lollipop">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#f816a463" />
</shape>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
这是我想要添加涟漪效果的按钮:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginTop="173dp"
android:textColor="#fff"
android:background="@drawable/ripple_bg"
android:clickable="true" />
Run Code Online (Sandbox Code Playgroud)
但添加涟漪效果后按钮背景是透明的,只有在点击时才会显示按钮,如下所示:
点击之前
点击

但我需要按钮背景颜色和涟漪效果,我在Stack Overflow的不同博客中发现了一些此代码,但它仍然无效!
我正在尝试使用一个简单的聊天气泡ConstraintLayout.这就是我想要实现的目标:
但是,wrap_content似乎没有与约束一起正常工作.它尊重边距,但不能正确计算可用空间.这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/chat_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintHorizontal_bias="0"
tools:background="@drawable/chat_message_bubble"
tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sodales accumsan tortor at bibendum."
android:layout_marginStart="64dp"
android:layout_marginLeft="64dp"
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp" />
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
这呈现如下:
我在用com.android.support.constraint:constraint-layout:1.0.0-beta4.
难道我做错了什么?这是一个错误还是一个不直观的行为?ConstraintLayout我可以使用(我知道我可以使用其他布局,我ConstrainLayout具体询问)来实现正确的行为.
当我们在android中显示AlertDialog时,它显示在屏幕的中心.有没有办法改变立场?
我有以下基本布局
<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>
Run Code Online (Sandbox Code Playgroud)
似乎xml是正确的,但文本是左对齐的.textview占用父级的整个宽度,textview设置为居中.不确定是什么问题...
我经常需要我的应用程序的不同部分有自己的特殊行为和UI,我不知道片段可以如何帮助.在大多数情况下,我认为创建2个不同的活动(例如,1个用于平板电脑,1个用于手机)以及分享第三类中的常见行为和事件更快.
所以,记住这一点,我为什么要使用片段?
所以我有一个引人入胜的问题.尽管我不是手动或以编程方式滚动我的视图,但我的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" />
<TextView
android:id="@+id/article_link"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:text="View Full Article"
android:textColor="@color/article_title"
android:textStyle="bold" />
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
我也没注重任何事情.默认情况下,它似乎在加载后自动滚动到WebView.我该如何防止这种情况?
android android-layout android-webview android-scrollview android-viewpager
我想围绕视图的角落,并在运行时根据内容更改视图的颜色.
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);
Run Code Online (Sandbox Code Playgroud)
我希望设置一个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>
Run Code Online (Sandbox Code Playgroud) android background rounded-corners android-layout android-view
android ×10
android-layout ×10
android-ui ×1
android-view ×1
background ×1
margins ×1
overlap ×1
toolbar ×1
xml ×1