我尝试创建具有3列但没有间距的视图.更重要的是我需要有一个中心列,其宽度由容器的整体宽度决定(所以它抓住多余的水平空间).
GridLayout允许我创建3个宽度的中心填充容器,但我不能使此布局中的单元格之间的间距等于零.另一方面,在FillLayout中,很容易将specing等于零,但是不可能使中心列宽由容器宽度决定.
你能告诉我如何通过SWT布局实现我的目标吗?
有很多CSS列布局信息,但它们似乎都依赖于至少一些具有固定宽度(或百分比)的列,其他列可以基于这些列.
我想要完成的是一个三列布局,左右列是可变宽度(它们可以有任何内容)但分别粘在左右两侧.然后中心列应该展开以占据它们之间的任何剩余空间.即如果右列中没有任何内容,则中间列将扩展到屏幕右侧.
这是一个快速商店来展示:

在UserControl我有:
<Grid>
<DockPanel Grid.Column="0"
LastChildFill="True">
<Label x:Name="ProductName"
HorizontalAlignment="Stretch"
DockPanel.Dock="Top"
Background="Red"
Height="60" />
<Label x:Name="Versie"
HorizontalAlignment="Stretch"
DockPanel.Dock="Top"
Background="Green"
Height="20" />
<Label x:Name="Copyright"
HorizontalAlignment="Stretch"
DockPanel.Dock="Top"
Background="Blue"
Height="20" />
<Label x:Name="Company"
HorizontalAlignment="Stretch"
DockPanel.Dock="Top"
Background="Yellow"
Height="20" />
<Label x:Name="Omschrijving"
HorizontalAlignment="Stretch"
**--> Answer: add this: VerticalAlignment="Stretch"**
Background="Tomato"/>
</DockPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)
我预计最后一个标签会填充dockpanel/grid中的可用垂直空间,因为LastChildFill="True".然而它的高度是10的默认"自动",它不会填充.
最后一个标签不响应DockPanel.Dock,我认为这是好的,结果是LastChildFill="True".
我该怎么做才能让高度填满剩余的高度?
layout.xml代码部分:
<ListView
android:id="@+android:id/listWhatever"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/rlSomething"
android:layout_marginBottom="I need this to set in code dinamically!"/>
Run Code Online (Sandbox Code Playgroud)
Java代码部分:
listWhatever = (ListView)findViewById(R.id.listWhatever);
RelativeLayout.LayoutParams layoutParams = (LayoutParams) listWhatever.getLayoutParams();
layoutParams.addRule(android:layout_marginBottom ... , how?);
Run Code Online (Sandbox Code Playgroud) 就像显示的图像一样.如何将按钮对齐?CGRectMake似乎只根据浮点x,y创建框架,它来自左上角.谢谢你的帮助.

我想将我的两个组件对齐到窗口的左上角。
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
public class MainFrame extends JFrame {
public MainFrame() {
JPanel mainPanel = new JPanel(new BorderLayout());
JPanel gridbagPanel = new JPanel();
this.setLayout(new BorderLayout());
gridbagPanel.setLayout(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
JLabel nameLabel = new JLabel(player.getName());
nameLabel.setHorizontalAlignment(SwingConstants.CENTER);
nameLabel.setFont(new Font("Serif",Font.PLAIN,24));
mainPanel.add(nameLabel, BorderLayout.NORTH);
JLabel money = new JLabel("Pinigai: "+new Integer(player.getMoney()).toString());
gc.gridx = 0;
gc.gridy = 0;
gc.anchor = GridBagConstraints.PAGE_START;
gc.insets = new Insets(2,0,0,2); …Run Code Online (Sandbox Code Playgroud) 我ImageButton手动声明了一个数组,然后手动添加了一些数组ImageButtons,在将这些数组分配ImageButtons给XML布局后,我尝试使用for循环遍历该数组,但是我NullPointerException在迭代该数组时得到了一个(异常自带)第一次迭代它甚至没有管理迭代一次),这是我的代码:
public ImageButton Antenna, AV, Components, VGA, HDMI, Switch;
public ImageButton[] upControllingButtons = {Antenna, AV, Components, VGA, HDMI, Switch};
Antenna = (ImageButton) findViewById(R.id.antenna);
// then the other six ImageButtons
// setting the onClick for the Up_Controlling butoons
for(int k=0; k < upControllingButtons.length ; k++ ){
upControllingButtons[k].setTag("tag"); // i got the Exception here
}
Run Code Online (Sandbox Code Playgroud)
和ImageButtonXML中的:
<ImageButton
android:id="@+id/antenna"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:adjustViewBounds="true"
android:background="@drawable/remote_living_buttons"
android:clickable="true"
android:padding="8dp"
android:scaleType="centerInside"
android:src="@drawable/remote_living_antena"
android:tag="released" />
<!.. …Run Code Online (Sandbox Code Playgroud) 我现在已经在这一段时间了,但我似乎无法掌握它.我正在尝试生成一个JPanel,上面有一个JTextArea,下面有两个JLabel,但我的JLabel最终位于我的JTextArea的左侧,我不能让另一个出现.
这是我的代码(抱歉显示的东西 - 只是填充物真的):
public JPanel contentPane() {
JPanel something = new JPanel();
String information = "Please";
info = new JTextArea(information, 4, 30);
info.setEditable(false);
info.setLineWrap(true);
info.setWrapStyleWord(true);
JPanel one = new JPanel(new BorderLayout());
one.setBackground(Color.WHITE);
one.setLocation(10, 10);
one.setSize(50, 50);
one.add(info, BorderLayout.CENTER);
something.add(one, BorderLayout.NORTH);
JPanel two = new JPanel(new BorderLayout());
two.setBackground(null);
two.setLocation(220, 10);
two.setSize(50, 50);
two.add(new JLabel("Please work"), BorderLayout.EAST);
two.add(new JLabel("Oh gosh, please"), BorderLayout.WEST);
something.add(two, BorderLayout.SOUTH);
something.setOpaque(true);
return something;
}
public static void GUI() {
JFrame frame = new JFrame("You Guessed It!");
DisplayStudent …Run Code Online (Sandbox Code Playgroud) 我在表视图中看到了关于如何创建浮动按钮的iOS浮动按钮.这是我创建按钮的方式.问题是该按钮将与表视图一起滚动.
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我建议你使用https://github.com/gizmoboy7/VCFloatingActionButton这个链接....希望它对你有用
所以,我正在尝试设计我的第一个GUI应用程序,而且我坚持将元素放在我想要的位置.我不是想让任何人为我做我的工作,但一些先发者会很棒.
例如:

layout ×10
java ×5
swing ×3
android ×2
ios ×2
arrays ×1
cgrect ×1
cocoa-touch ×1
css ×1
dockpanel ×1
html ×1
imagebutton ×1
jcomponent ×1
objective-c ×1
swt ×1
uibutton ×1
uitableview ×1
wpf ×1
xaml ×1