我在相对布局中有一个线性布局,我想让按钮“更高”'以适应线性布局的高度。
我尝试添加填充,正如您在屏幕截图中看到的那样,布局越来越高'但按钮不是。我试过了#fill; parent',' match_parent'但它并没有什么不同。如何使按钮在高度上扩展?
<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:id="@+id/timerLayout">
<Chronometer
android:id="@+id/chronometer1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="48dp"
android:text="@string/chronometer"
android:textSize="50sp" />
<LinearLayout
android:id="@+id/buttonLayout"
android:orientation="horizontal"
android:paddingLeft="4.0dp"
android:paddingTop="50.0dp"
android:paddingRight="4.0dp"
android:paddingBottom="4.0dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<Button
android:id="@+id/btnReset"
android:layout_width="0.0dp"
android:layout_height="fill_parent"
android:drawableLeft="@drawable/ic_restore_white_24dp"
android:drawableStart="@drawable/ic_restore_white_24dp"
android:text="@string/pause_btn"
android:layout_weight="1.5" />
<Button
android:id="@+id/btnStart"
android:layout_width="0.0dp"
android:layout_height="fill_parent"
android:text="@string/start_btn"
android:drawableLeft="@android:drawable/ic_media_play"
android:drawableStart="@android:drawable/ic_media_play"
android:layout_weight="1.5" />
<Button
android:id="@+id/btnSave"
android:layout_width="0.0dp"
android:layout_height="fill_parent"
android:text="@string/save_btn"
android:drawableLeft="@drawable/ic_save_white_24dp"
android:drawableStart="@drawable/ic_save_white_24dp"
android:layout_weight="1.0" />
</LinearLayout>
答案 0 :(得分:1)
你的linearlayout说高度:wrap_content 所以子元素只会占用指定的空间。
尝试给出linearHout的minHeight或简单地删除linearlayout,并在按钮中指定&#34; alignparentbottom = true&#34;。 对于最左边的按钮,给出alignparentStart = true。
答案 1 :(得分:1)
非常仔细地查看您的xml
布局文件
<LinearLayout
android:id="@+id/buttonLayout"
android:orientation="horizontal"
android:paddingLeft="4.0dp"
android:paddingTop="50.0dp" //this guy
android:paddingRight="4.0dp"
android:paddingBottom="4.0dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
android:paddingTop
是LinearLayout
中每个孩子顶部的空格,因此如果您将其删除,则按钮将适合。
答案 2 :(得分:1)
您看到的额外空间来自线性布局中的填充值,并且您的按钮已经填充了父线性布局。但是您的线性布局指定了以下内容。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.KeyStroke;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;
public class Test {
public static void main(String[] args) {
new Test();
}
public Test() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Stuff") {
private Border border = new LineBorder(Color.RED);
@Override
public JPopupMenu getPopupMenu() {
JPopupMenu menu = super.getPopupMenu();
menu.setBorder(border);
return menu;
}
};
JMenuItem mi = new JMenuItem("Help", 'H');
mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, KeyEvent.META_MASK));
menu.add(new JMenuItem("A"));
menu.add(new JMenuItem("BB"));
menu.add(new JMenuItem("CCC"));
menu.add(mi);
menuBar.add(menu);
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new TestPane());
frame.setJMenuBar(menuBar);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class TestPane extends JPanel {
public TestPane() {
}
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
}
}
如果要查看高度较大的按钮,请将线性布局的高度值更改为:
android:layout_height="wrap_content"