我正在尝试使用SmartTabLayout库实现与此类似的布局: https://blog.nus.edu.sg/mobileixd/files/2015/02/1-1g3mmmu.png
我可以添加等间距的标签图标,但它们都靠近屏幕中心放置。或者,我可以有相同间距的标签但没有选中的标签。 我如何实现两者的结合? 我试图通过一些厚度的透明分隔器来实现这一点,但是我无法达到所需的结果。
如何通过中间选定的标签和屏幕两端的其他两个标签实现这种布局?
我正在使用以下布局:
<com.abc.resfree.ui.widgets.SmartTabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="56dp"
app:stl_dividerColor="@android:color/transparent"
app:stl_dividerThickness="30dp"
app:stl_indicatorColor="@color/transparent"
app:stl_indicatorThickness="0dp"
app:stl_underlineColor="@color/transparent"
app:stl_underlineThickness="0dp"
app:stl_indicatorAlwaysInCenter="true"
/>
答案 0 :(得分:1)
没有使用SmartTabLayout库,但我使用的是由android支持库提供的TabLayout。你可以尝试
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class LayoutManagersWithIcon {
private JComponent ui = null;
LayoutManagersWithIcon() {
initUI();
}
public void initUI() {
if (ui!=null) return;
ui = new JPanel(new BorderLayout(4,4));
ui.setBorder(new EmptyBorder(4,4,4,4));
JPanel levelPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 5));
ui.add(levelPanel, BorderLayout.PAGE_START);
levelPanel.add(new JRadioButton("Easy"));
levelPanel.add(new JRadioButton("Medium"));
levelPanel.add(new JRadioButton("Hard"));
JPanel startPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 5));
ui.add(startPanel, BorderLayout.PAGE_END);
startPanel.add(new JButton("Play"));
JLabel label = new JLabel(new ImageIcon(
new BufferedImage(400, 100, BufferedImage.TYPE_INT_RGB)));
ui.add(label);
}
public JComponent getUI() {
return ui;
}
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception useDefault) {
}
LayoutManagersWithIcon o = new LayoutManagersWithIcon();
JFrame f = new JFrame(o.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);
f.setContentPane(o.getUI());
f.pack();
f.setMinimumSize(f.getSize());
f.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}
这些属性(它们与支持库一起使用!)。你可能想尝试一下。