标签: layout

Java中声明性GUI编程的建议

我想知道在Java中是否有任何关于声明性GUI编程的建议.(我厌恶基于视觉的GUI创建者/编辑器软件,但我对手动实例化JPanels和Boxes以及JLabel和JLists等感到有些厌倦)

这是我的整体问题,但对于我正在考虑的方法,我有两个具体的问题:

  1. JavaFX:JavaFX中是否有一个真实GUI显示的示例(例如,不是圆形和矩形,但是列表框和按钮以及标签等),它可以与访问和更新各种元素的Java源文件连接?

  2. 简单的旧Swing有一些东西要解析XUL-ish XML:有没有人发明过一种用于Java的声明性语法(如XUL)用于Java Swing?我想,要创建一些基于STaX的代码来创建一些代码,实例化Swing元素的层次结构,并通过某种对象模型访问层次结构,我认为这并不难.但我宁愿使用一些众所周知,记录和测试的东西,而不是试图自己发明这样的东西.

  3. JGoodies表格 - 不完全是声明性的,但有点接近我和JGoodies Binding有好运.但他们的表单布局的语法似乎有点神秘.

编辑:这里有很多很棒的答案!(我在上面添加了#3)我特别感谢您在使用其中一个框架进行实际应用时获得的任何经验.

ps我尝试了一些谷歌搜索("java gui declarative"),只是不太清楚要找什么.

java layout user-interface swing declarative

55
推荐指数
5
解决办法
8288
查看次数

55
推荐指数
8
解决办法
8万
查看次数

Android NumberPicker:从XML设置min,max,default

有没有办法从XML布局设置NumberPicker的最小值,最大值和默认值?

我是在Activity代码中做的:

np = (NumberPicker) findViewById(R.id.np);
np.setMaxValue(120);
np.setMinValue(0);
np.setValue(30);
Run Code Online (Sandbox Code Playgroud)

XML显然更合适,因为它定义了属性,而不是行为.

有没有办法使用XML布局设置这些?

xml layout android numberpicker

55
推荐指数
3
解决办法
5万
查看次数

如何获得按钮的高度以匹配另一个元素的高度?

我想在EditText旁边放一个按钮,我希望它们的高度匹配.

例如,从内置的Android浏览器:

替代文字

Go按钮与EditText字段的高度相同.我知道我可以在父布局视图中包装这两个视图,并将它们的高度设置为fill_parent,这将使它们匹配.但是,我想这样做而不必给布局一个静态大小.我希望EditText根据字体大小获取所需的任何高度,然后让它旁边的按钮匹配任何可能的高度.

这是否可以使用xml布局?

height layout android match

54
推荐指数
3
解决办法
5万
查看次数

DIV与桌面或CSS对愚蠢

我知道表格是用于表格数据的,但是将它们用于布局是很诱人的.我可以处理DIV以获得三列布局,但是当你有4个嵌套DIV时,它会变得棘手.

有没有教程/参考来说服我使用DIV进行布局?

我想使用DIV,但我拒绝花一个小时将我的DIV/SPAN定位在我想要的地方.

@GaryF:Blueprint CSS必须是CSS最好的秘密.

伟大的工具 - Blueprint Grid CSS Generator.

css layout

53
推荐指数
6
解决办法
9475
查看次数

在android XML布局中使用layout_height ="wrap_content"的ImageView具有填充顶部和底部

我有一个垂直LinearLayout包含ImageView和一些其他布局和视图.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:contentDescription="@string/banner_alt"
        android:src="@drawable/banner_portrait" />

    <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="@string/main_search"
      android:gravity="center"
      android:textStyle="bold" />

    <LinearLayout
      android:orientation="horizontal"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >

      <Spinner
        android:id="@+id/search_city_spinner"
        android:layout_width="0px"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:prompt="@string/search_city_prompt"
        android:entries="@array/search_city_array" />

      <Spinner
        android:id="@+id/search_area_spinner"
        android:layout_width="0px"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:prompt="@string/search_area_prompt"
        android:entries="@array/search_area_array" />

    </LinearLayout>

    <LinearLayout
      android:orientation="horizontal"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >

      <Spinner
        android:id="@+id/search_rooms_spinner"
        android:layout_width="0px"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:prompt="@string/search_rooms_prompt"
        android:entries="@array/search_rooms_array" />

      <Spinner
        android:id="@+id/search_min_spinner"
        android:layout_width="0px"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:prompt="@string/search_min_prompt"
        android:entries="@array/search_min_array" />

      <Spinner
        android:id="@+id/search_max_spinner"
        android:layout_width="0px"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:prompt="@string/search_max_prompt"
        android:entries="@array/search_max_array" />

    </LinearLayout>

    <Button
      android:id="@+id/saearch_button"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="@string/search_button"
      android:onClick="searchButton" …
Run Code Online (Sandbox Code Playgroud)

xml layout android imageview

53
推荐指数
1
解决办法
10万
查看次数

删除Android App标题栏

我理解清单中的这些属性:

android:theme="@android:style/Theme.NoTitleBar"     
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Run Code Online (Sandbox Code Playgroud)

可以删除标题栏.但是,当我修改我的应用程序时,我会不断检查图形布局.当我看到图形布局时,我仍然看到标题栏.我想以一种在游戏开发过程中不必看到它的方式删除标题栏.

layout android titlebar

53
推荐指数
12
解决办法
15万
查看次数

53
推荐指数
4
解决办法
5万
查看次数

Android InputType布局参数 - 如何允许负小数?

我有一个布局,有三个字段用于输入三个地图坐标.到现在为止还挺好.我在布局中使用android:inputType ="numberDecimal".当进入该字段时,用户获得数字小键盘.还好.

但是,当需要输入负坐标时,没有明显的方法可以做到这一点.

23.2342工作正常.232.3421工作正常.无法输入-11.23423 - 无法输入前导负号,甚至无法将坐标包装在()中.

我确信我可以将其更改为直接文本inputType,然后使用正则表达式来验证输入的内容实际上是一个数字坐标,处理错误消息回发给用户等等.但是我会而不是去那条路.

我用谷歌搜索和Stackoverflowed这个问题几个小时没有运气.有什么建议?

layout android

52
推荐指数
4
解决办法
3万
查看次数

IOS - 如何使用水平滚动列表创建TabelView

我正在尝试使用可滚动的水平项(具有未知数量的项目)来实现表视图,如下图所示:

在此输入图像描述

用户界面的行为应如下:

  1. 在初始状态下,表格单元格显示标签和一些文本,圆形项目从右侧弹出
  2. 如果用户从右向左滑动,标签和文本会淡出,水平列表(在单元格内)会占据它的位置

我想过使用TableView并dequeueReusableCellWithIdentifier创建一个原型单元格,但是我需要记住列表水平位置并正确启动单元格cellForRowAtIndexPath,这可能会影响性能.

问:为了实现这一目标,您将使用什么布局,任何输入/教程都将受到赞赏

layout uitableview ios swift

52
推荐指数
2
解决办法
5万
查看次数