Articles of android layout

显示一个PopupWindow集中

我的应用程序中有一些popup窗口,它是全屏幕和下面的代码: content.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); content.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); int screenWidth = windowManager.getDefaultDisplay().getWidth(); int screenHeight = windowManager.getDefaultDisplay().getHeight(); int x = screenWidth / 2 – content.getMeasuredWidth() / 2; int y = screenHeight / 2 – content.getMeasuredHeight() / 2; window.showAtLocation(content, Gravity.NO_GRAVITY, x, y); 使窗口显示居中。 但是我有另外一个不是全屏的活动,当popup窗口打开时,它是从需要的地方直接下来的。 试图找出为什么发生这种情况,我认为showAtLocation显示它是相对于当前的活动,但我需要显示相对于显示。 我怎样才能做到这一点? 或者有一个更简单的方法来popup刚居中?

ConstraintLayout内部的Wrap_content视图在屏幕外延伸

我正在尝试使用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> 这呈现如下: 我使用的是com.android.support.constraint:constraint-layout:1.0.0-beta4 。 难道我做错了什么? 这是一个错误还是一个不直观的行为? 我可以使用ConstraintLayout实现正确的行为(我知道我可以使用其他布局,我特别关心ConstrainLayout )。

设置ImageView在SD卡中显示图像?

我有一个图像存储在我的手机的SD卡。 我想在图像视图中显示它。 我知道文件的位置。 在活动的产生上,有一种简单的方式来expression这样的想法 ImageView img = (ImageView) findViewById(R.id.imageView1); String path = Environment.getExternalStorageDirectory().toString() "Images/image.jpg"; img.setsrc = path ; 请让我知道,如果有什么办法做到这一点。 谢谢。

Textview环绕视图

我试图让我的水平布局利用可用的空间。 在显示活动的信息中,我有一个“事实框”,后面跟着一大盒文字。 我想让信息框正确地浮动,类似于下面的图片。 这可能使用android textview api吗?

为什么DrawerLayout在打开时有时会出现问题?

我遵循教程导航抽屉 ,一切都像一个魅力,除了一个小毛刺。 我会尽量解释它,如果还不清楚,我会尝试上传一个问题的video。 试图打开抽屉时才会出现问题,而且只有在打开时才会出现问题,而且有时会发生,而不总是。 那就是当我开始打开它时,它会以大约4毫米的距离打开,并始终保持相同的距离。 如果我把手指放回去,那么当我放开时,它就不会继续开放也不会closures。 请注意: 我试过多个设备(Nexus 7,Nexus)和虚拟设备,问题依然存在。 使用Google提供的示例复制问题。 (Youtube链接) 问题出现在我的应用程序。 (Youtube链接) 我设法复制了这个问题一次,但只有一次在Gmail应用程序(我相信使用相同的实现),但是更频繁与我的应用程序和示例应用程序。 我注意到,如果您只是单击屏幕边缘,就会在与抽屉打开的距离相同的距离处发生故障,因为在初始打开之后它会冻结,从不拖动。 任何指针将不胜感激。

我应该把“ttf”文件放在Android项目中?

我正在尝试使用字体在我的项目中使用字体。 我将"font.ttf"复制到"font.ttf"文件夹中名为“fonts”的文件夹中。 但日食不允许编译它。 它显示字体文件夹的错误。 我该怎么办? 我得到的错误是: invalid resource directory name fonts /NoRats/assets line 1 Android AAPT Problem

自己定义的Layout,onDraw()方法没有被调用

我定义了这样一个类: public class TestMyFrameLayout extends FrameLayout{ Paint mPaint; public TestMyFrameLayout(Context context, AttributeSet attrs) { super(context, attrs); } public TestMyFrameLayout(Context context) { super(context); mPaint = new Paint(); mPaint.setColor(Color.GREEN); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawCircle(50f, 50f, 30, mPaint); } } 并称之为: TestMyFrameLayout myFrameLayout = new TestMyFrameLayout(this); LayoutParams myFrameLayoutParams = new LayoutParams(300,300); myFrameLayout.setLayoutParams(myFrameLayoutParams); setContentView(myFrameLayout); 但是实际上TestMyFrameLayout.onDraw(Canvas canvas)函数没有被调用,为什么呢?

我怎样才能检测到我的应用程序Androidselect哪个布局?

假设我在不同的资源文件夹中有三种不同布局的活动。 例如: layout-land/my_act.xml layout-xlarge/my_act.xml layout-xlarge-land/my_act.xml 在不同的设备和不同的位置,其中一个是由Androidselect的。 我怎样才能找出哪一个是编程select? Android是否有任何将这些布局返回给程序的API? 编辑 : Graham Borland的解决scheme在我提到的一些情况下有问题。

渲染期间引发的exception:二进制XML文件行#-1:错误膨胀类<未知>

我试图在布局中包括checkbox,并拖放后,我得到这个错误: 渲染期间引发的exception:二进制XML文件行#-1:错误膨胀class<unknown> 。 xml文件: <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.nidhigupta.shopping2.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/textView" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New CheckBox" android:id="@+id/checkBox" android:layout_below="@+id/textView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </RelativeLayout> 请提供一步一步的解决scheme。 细节链接说: java.lang.NoSuchMethodError: android.graphics.drawable.VectorDrawable_Delegate.nCreateTreeFromCopy(JJ)J at android.graphics.drawable.VectorDrawable.nCreateTreeFromCopy(VectorDrawable.java) at android.graphics.drawable.VectorDrawable.access$400(VectorDrawable.java:204) at android.graphics.drawable.VectorDrawable$VectorDrawableState.createNativeTreeFromCopy(VectorDrawable.java:837) at android.graphics.drawable.VectorDrawable$VectorDrawableState.<init>(VectorDrawable.java:812) at android.graphics.drawable.VectorDrawable.mutate(VectorDrawable.java:268) at android.graphics.drawable.DrawableContainer$DrawableContainerState.addChild(DrawableContainer.java:817) at android.graphics.drawable.StateListDrawable$StateListState.addStateSet(StateListDrawable.java:329) at android.graphics.drawable.AnimatedStateListDrawable$AnimatedStateListState.addStateSet(AnimatedStateListDrawable.java:602) at […]

你可以使用碎片合并标签?

如果我使用merge标签作为我的分片布局的父标签,我碰到两个问题: 首先,在onCreateView() ,如果我指定不要附加到根,我得到的错误: android.view.InflateException: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true 如果我附加到根,我得到的错误: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 我在这里发现了另一个问题的好答案,说这个片段库会自动将这个孩子附加到你在replace中指定的父视图组中。 build议您需要将attachToRoot设置为false 。 对于merge标签,这是必需的。 是否有可能解决这些规则中的任何一个使用merge标签的片段的布局?