我正在使用Xamarin表单进行应用程序,但是我在将布局粘贴到设备底部时遇到了一些麻烦.我认为AbsoluteLayout会起作用,但我无法理解它是如何工作的.所以我创建了一个RelativeLayout,我填充了我想要填充的元素,但现在我似乎无法让它始终坚持设备的底部.
下面是一个屏幕截图,可以让事情更加清晰.我有一个stacklayout,我用headerlayout和contentlayout填充.但是,如果我只是将footerlayout添加到stacklayout,它将不会粘贴到页面的底部,而是(逻辑上)紧跟在前一个孩子的后面.现在我认为Absolutelayout可以做到这一点,但我似乎无法掌握它的功能和Layoutflags和界限.有人可以帮帮我吗?
如果你使用AbsoluteLayout(我知道它已被弃用,但这是解决我问题的唯一方法)你可以给childViews标签android:layout_x
并android:layout_y
设置它们的绝对位置AbsoluteLayout
.
但是我不想在xml中设置这些信息,因为我只在运行时知道它们.那么如何在运行时以编程方式设置这些参数呢?我没有在View上看到任何方法view.setLayoutX(int x)
或类似的东西.
这是我的XML,当我设置layout_x
和layout_y
值时,它工作正常:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:src="@drawable/myImageView"
android:layout_width="1298px"
android:layout_height="945px"
android:layout_x="0px"
android:layout_y="0px" />
<Button
android:id="@+id/myButton1"
android:text="23"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="50px"
android:layout_y="300px"
android:tag="23"/>
<Button
android:id="@+id/myButton2"
android:text="48"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="50px"
android:layout_y="300px"
android:tag="48"/>
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)
实际上,我不想再在xml中设置任何按钮,而是通过远程检索一些信息并根据该信息添加按钮.
这是我正在使用的代码部分,所以在我onCreateMethod
添加这些按钮:
for (MyRemoteObject remoteObject: list) {
Button button = new Button(this);
button.setOnClickListener (listener);
button.setTag(remoteObject.id);
button.setText(remoteObject.id);
// button.setLayoutX(remoteObject.x) ????
// button.setLayoutY(remoteObject.y) ????
myLayout.addView(button);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用AbsoluteLayout的Xamarin.Forms,但是,我不确定如何处理元素的位置.
我正在使用比例值,所以如果我AbsoluteLayout.LayoutBounds="1, 0.05, 0.15, 0.1"
在每个值都是比例的位置放置一个元素(所以标志是"全部" AbsoluteLayout.LayoutFlags="All"
)
它将放置在屏幕的顶部/右侧.然而,它不会占据一席之地.那意味着什么呢?如果外面的每个元素都重新定位到屏幕上?
但是现在,当你放置一个元素时,另一个问题是基于X/Y位置?是中心还是其他方面?
在这个例子中,我尝试使用0.15,但渲染有点奇怪,所以我把0然后渲染匹配我想要的.
你可以说"测试它,你会看到."然而,对于设计师和我来说,定位每个元素是浪费时间,因为我们不确定它是如何工作的.因此,我们努力尝试使用debuging ..
我们还在搜索是否存在一个软件来生成有关设计师设计的位置.我们指的是元素的位置X/Y百分比.
预先感谢 !
我有一个使用StackLayout登录页面的内容(用户名,密码,登录按钮).在用户单击登录按钮后,我希望在现有StackLayout内容之上的页面的绝对中心设置"加载"块.出于某些恼人的原因,这并不简单.这似乎是一件简单而常见的事情 - 这是怎么做到的?
所以我在Eclipse中使用图形编辑器AbsoluteLayout
,固定像素值等制作了一个应用程序......一般来说只是不好的做法.它违约了3.7in screen
.有没有什么办法design
一个separate layout
每个屏幕尺寸并有计划选择基于所述屏幕尺寸加载?
我在XML文件中的AbsoluteLayout中有一个按钮.从那里我可以设置按钮的(x,y)位置.
如何以编程方式获取和设置按钮的(x,y)坐标?
谢谢大家.
为什么absolutelayout被弃用了?我知道它可能会导致支持多个屏幕的问题,但更适合在特定位置显示视图.
如果我创建不可调整大小的JFrame,并启用Windows Aero setLocation
似乎没有正确考虑窗口边框.
在下面的代码中,我希望第二帧位于第一帧的右侧,而不是边框重叠.如果禁用Aero,或者我删除了setResizable
对此的调用,则按预期完成.
import java.awt.Rectangle;
import javax.swing.JFrame;
public class FrameBorders {
public static void main(String[] args) {
JFrame frame1 = new JFrame("frame 1");
JFrame frame2 = new JFrame("frame 2");
frame1.setResizable(false);
frame2.setResizable(false);
frame1.setVisible(true);
Rectangle bounds = frame1.getBounds();
frame2.setLocation(bounds.x+bounds.width, bounds.y);
frame2.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么或这是一个错误?如何在没有重叠边框的情况下并排显示2个不可调整的对话框?
编辑:添加了截图(也将frame2更改为JDialog而不是JFrame)
Aero On:
Aero Off:
Aero On但可调整大小:
在我的应用程序中,我使用了Xamarin.Forms
AbsoluteLayout
.我有一个自定义菜单栏.当我点击菜单按钮时,我的主要内容(a View
)AbsoluteLayout
应该被替换.
到目前为止,我只能通过添加一个新子项并使用Children.Add()
和设置其布局边界来实现SetLayBounds()
.但是这样我就会添加越来越多的孩子而且永远不会删除它们.
从一个孩子中删除孩子的正确方法是AbsoluteLayout
什么?
我有一个固定的背景图像,并在其上显示另一个图像.这是xml-
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/test_image"
android:src="@drawable/lpch_1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<ImageView
android:id="@+id/search_pin"
android:src="@drawable/pin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_y="100px"
android:layout_x="100px"
/>
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)
现在,我如何从代码中更改image-id search_pin的layout_x,layout_y?