- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi muốn có hai thanh công cụ riêng biệt trên JFrame và có thể di chuyển từng thanh công cụ riêng lẻ sang phía đông, phía tây hoặc phía nam của khung, tôi đã thử sử dụng BorderLayout nhưng điều đó không có ích, tôi biết tôi có thể di chuyển từng thanh công cụ với BorderLayout được đặt trên một bảng và có thể di chuyển chúng, nhưng điều tôi thực sự cần là đặt chúng cạnh nhau và có thể di chuyển từng cái riêng lẻ, mã này không hoạt động nhưng nó sẽ giúp hiểu vấn đề của tôi, có thể có ai vui lòng giúp tôi không?
kiểm tra gói;
nhập java.awt.Dimension;
nhập javax.swing.JLabel;
nhập javax.swing.JPanel;
biểu mẫu kiểm tra lớp công khai mở rộng javax.swing.JFrame {
mẫu thử nghiệm công khai() {
initComponents();
jPanel1.removeAll();
jPanel1.setPreferredSize(Kích thước mới (800.800));
MultiBorderLayout amMultiBorderLayout = MultiBorderLayout mới(0, 0);
jPanel1.add("Miền Bắc", jToolBar1);
jPanel1.add("Miền Bắc", jToolBar2);
jPanel1.add("Trung tâm",jPanel2);
jPanel1.setLayout(amMultiBorderLayout);
jPanel1.revalidate();
}
@SuppressWarnings("không được chọn")
//
khoảng trống riêng tư initComponents() {
jPanel1 = javax.swing.JPanel mới();
jPanel2 = javax.swing.JPanel mới();
jLabel1 = javax.swing.JLabel mới();
jToolBar1 = javax.swing.JToolBar mới();
jButton1 = javax.swing.JButton mới();
jToolBar2 = javax.swing.JToolBar mới();
jButton2 = javax.swing.JButton() mới;
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout jPanel1Layout = javax.swing.GroupLayout mới (jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 156, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 31, Short.MAX_VALUE)
);
jLabel1.setText("jLabel1");
javax.swing.GroupLayout jPanel2Layout = javax.swing.GroupLayout mới (jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addContainerGap(43, Short.MAX_VALUE)
.addComponent(jLabel1)
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addContainerGap(71, Short.MAX_VALUE))
);
jToolBar1.setRollover(true);
jButton1.setText("jButton1");
jButton1.setFocusable(false);
jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
jToolBar1.add(jButton1);
jToolBar2.setRollover(true);
jButton2.setText("jButton2");
jButton2.setFocusable(false);
jButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
jToolBar2.add(jButton2);
Bố cục javax.swing.GroupLayout = javax.swing.GroupLayout mới (getContentPane());
getContentPane().setLayout(layout);
bố cục.setHorizontalGroup(
bố cục.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(29, 29, 29)
.addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 86, Short.MAX_VALUE)
.addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(76, 76, 76)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 63, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 64, Short.MAX_VALUE)))
);
bố cục.setVerticalGroup(
bố cục.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(31, 31, 31)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(64, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 103, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 104, Short.MAX_VALUE)))
);
đóng gói();
}//
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
công khai void run() {
testform mới().setVisible(true);
}
});
}
// Khai báo biến - không sửa đổi
javax.swing.JButton jButton1 riêng tư;
javax.swing.JButton jButton2 riêng tư;
javax.swing.JLabel jLabel1 riêng tư;
javax.swing.JPanel jPanel1 riêng tư;
javax.swing.JPanel jPanel2 riêng tư;
javax.swing.JToolBar jToolBar1 riêng tư;
javax.swing.JToolBar jToolBar2 riêng tư;
// Kết thúc khai báo biến
}
câu trả lời hay nhất
Tôi đã triển khai tiện ích mở rộng BorderLayout để hỗ trợ việc này. CẬP NHẬT: Mã giống như ứng dụng thử nghiệm nhỏ http://java-sl.com/tip_multiple_floatable_toolbars.html
Sử dụng nó ở đây thay vì BorderLayout jPanel1.setLayout(java.awt.BorderLayout() mới);
nhập java.awt.*;
nhập java.util.Vector;
/**
* Mở rộng BorderLayout với nhiều thành phần trong NorthList, SouthList, EastList, WestList
* và centerList. Bố cục được sử dụng để làm việc chính xác với nhiều thanh công cụ.
*
* @tác giả Stanislav Lapitsky
* @phiên bản 1.0
*/
lớp công khai MultiBorderLayout mở rộng BorderLayout {
/**
* danh sách các thành phần của khu vực NorthList
*/
Vector NorthList = Vector mới();
/**
* danh sách các thành phần của khu vực southList
*/
Vector southList = Vector mới();
/**
* danh sách các thành phần của vùng westList
*/
Vector westList = Vector mới();
/**
* danh sách các thành phần của vùng EastList
*/
Vector eastList = Vector mới();
/**
* danh sách các thành phần của vùng centerList
*/
Vector centerList = Vector mới();
/**
* Xây dựng thể hiện bố cục mặc định.
*/
MultiBorderLayout công khai() {
super();
}
/**
* Xây dựng phiên bản bố cục mới với các tham số được xác định.
*
* @param hgap khoảng cách ngang.
* @param vgap khoảng cách dọc.
*/
public MultiBorderLayout(int hgap, int vgap) {
siêu(hgap, vgap);
}
/**
* Thêm thành phần được chỉ định vào bố cục, sử dụng thuộc tính được chỉ định
* đối tượng ràng buộc. Đối với bố cục đường viền, ràng buộc phải là một trong các đối tượng
* các hằng số sau: BẮC
, SOUTH
, EAST
* , TÂY
hoặc TRUNG TÂM
.
*
* Hầu hết các ứng dụng không gọi trực tiếp phương thức này.
* khi một thành phần được thêm vào vùng chứa bằng Container.add
* Phương thức có cùng loại đối số.
*
* @param name Tính năng sẽ được thêm vào LayoutComponent
* thuộc tính.
* @param tính thành phần sẽ được thêm vào.
*/
//phương thức này không được dùng nữa nhưng cần phải ghi đè nó vì lớp hiện tại mở rộng
// BorderLayout để cung cấp nhiều thành phần (thanh công cụ)
public void addLayoutComponent(Tên chuỗi, Thành phần comp) {
đã đồng bộ hóa (comp.getTreeLock()) {
/*
* Trường hợp đặc biệt: coi null giống như "Trung tâm".
*/
nếu (tên == null) {
name = "Trung tâm";
}
/*
* Gán thành phần cho một trong các vùng đã biết của bố cục.
*/
if ("Trung tâm".equals(name)) {
centerList.add(comp);
} else if ("Miền Bắc".equals(name)) {
NorthList.insertElementAt(comp, 0);
} else if ("Miền Nam".equals(name)) {
southList.add(comp);
} else if ("East".equals(name)) {
EastList.add(comp);
} else if ("West".equals(name)) {
westList.add(comp);
} khác {
ném IllegalArgumentException mới ("không thể thêm vào bố cục: ràng buộc không xác định:" + tên);
}
}
}
/**
* Loại bỏ thành phần được chỉ định khỏi bố cục đường viền này.
* được gọi khi vùng chứa gọi remove
hoặc removeAll
của nó
* Hầu hết các ứng dụng không gọi trực tiếp phương thức này.
*
* @param tính thành phần cần loại bỏ.
*/
public void RemoveLayoutComponent(Component comp) {
đã đồng bộ hóa (comp.getTreeLock()) {
southList.remove(comp);
NorthList.remove(comp);
centerList.remove(comp);
westList.remove(comp);
EastList.remove(comp);
}
}
/**
* Xác định kích thước tối thiểu của vùng chứa target
bằng cách sử dụng
* trình quản lý bố cục này
*
* Phương thức này được gọi khi một container gọi getMinimumSize
của nó
* Phương thức này Hầu hết các ứng dụng không gọi trực tiếp phương thức này.
*
* @param nhắm mục tiêu vùng chứa để thực hiện bố cục.
* @return kích thước tối thiểu cần thiết để bố trí các thành phần phụ
* của vùng chứa được chỉ định.
*/
Thứ nguyên công khai tối thiểuLayoutSize(Mục tiêu vùng chứa) {
đã đồng bộ hóa (target.getTreeLock()) {
Thứ nguyên mờ = Thứ nguyên mới (0, 0);
Thành phần c;
if (eastList.size() > 0) {
for (int i = 0; i < eastList.size(); i++) {
c = (Thành phần) eastList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getMinimumSize();
dim.width += d.width + this.getHgap();
dim.height = Math.max(d.height, dim.height);
}
}
if (westList.size() > 0) {
for (int i = 0; i < westList.size(); i++) {
c = (Thành phần) westList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getMinimumSize();
dim.width += d.width + this.getHgap();
dim.height = Math.max(d.height, dim.height);
}
}
if (centerList.size() > 0) {
for (int i = 0; i < centerList.size(); i++) {
c = (Thành phần) centerList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getMinimumSize();
dim.width += d.width;
dim.height = Math.max(d.height, dim.height);
}
}
if (northList.size() > 0) {
for (int i = 0; i < NorthList.size(); i++) {
c = (Thành phần) NorthList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getMinimumSize();
dim.width = Math.max(d.width, dim.width);
dim.height += d.height + this.getVgap();
}
}
if (southList.size() > 0) {
for (int i = 0; i < southList.size(); i++) {
c = (Thành phần) southList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getMinimumSize();
dim.width = Math.max(d.width, dim.width);
dim.height += d.height + this.getVgap();
}
}
Phần trong phần trong = target.getInsets();
dim.width += insets.left + insets.right;
dim.height += insets.top + insets.bottom;
trở lại mờ nhạt;
}
}
/**
* Xác định kích thước ưa thích của vùng chứa đích
bằng cách sử dụng
* trình quản lý bố cục này, dựa trên các thành phần trong vùng chứa
.
*
* Hầu hết các ứng dụng không gọi trực tiếp phương thức này.
* khi vùng chứa gọi phương thức getPreferredSize
của nó.
*
* @param nhắm mục tiêu vùng chứa để thực hiện bố cục.
* @return các kích thước ưa thích để bố trí các thành phần phụ của
* thùng chứa được chỉ định.
*/
public Dimension prefferedLayoutSize(Mục tiêu vùng chứa) {
đã đồng bộ hóa (target.getTreeLock()) {
Thứ nguyên mờ = Thứ nguyên mới (0, 0);
Thành phần c;
if (eastList.size() > 0) {
for (int i = 0; i < eastList.size(); i++) {
c = (Thành phần) eastList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getPreferredSize();
dim.width += d.width + this.getHgap();
dim.height = Math.max(d.height, dim.height);
}
}
if (westList.size() > 0) {
for (int i = 0; i < westList.size(); i++) {
c = (Thành phần) westList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getPreferredSize();
dim.width += d.width + this.getHgap();
dim.height = Math.max(d.height, dim.height);
}
}
if (centerList.size() > 0) {
for (int i = 0; i < centerList.size(); i++) {
c = (Thành phần) centerList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getPreferredSize();
dim.width += d.width;
dim.height = Math.max(d.height, dim.height);
}
}
if (northList.size() > 0) {
for (int i = 0; i < NorthList.size(); i++) {
c = (Thành phần) NorthList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getPreferredSize();
dim.width = Math.max(d.width, dim.width);
dim.height += d.height + this.getVgap();
}
}
if (southList.size() > 0) {
for (int i = 0; i < southList.size(); i++) {
c = (Thành phần) southList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getPreferredSize();
dim.width = Math.max(d.width, dim.width);
dim.height += d.height + this.getVgap();
}
}
Phần trong phần trong = target.getInsets();
dim.width += insets.left + insets.right;
dim.height += insets.top + insets.bottom;
trở lại mờ nhạt;
}
}
/**
* Bố trí đối số vùng chứa bằng cách sử dụng bố cục đường viền này.
*
* Phương pháp này thực sự định hình lại các thành phần trong vùng chứa được chỉ định
* để đáp ứng các ràng buộc của BorderLayout
này
* đối tượng. Các thành phần BẮC
và SOUTH
, nếu có,
* lần lượt được đặt ở trên cùng và dưới cùng của vùng chứa.
* Sau đó, các thành phần WEST
và EAST
được đặt trên
* trái và phải tương ứng. Cuối cùng, đối tượng CENTER
là.
* được đặt ở bất kỳ khoảng trống nào còn lại ở giữa
*
* Hầu hết các ứng dụng không gọi trực tiếp phương thức này.
* khi vùng chứa gọi phương thức doLayout
của nó.
*
* @param nhắm mục tiêu vùng chứa để thực hiện bố cục.
*/
public void bố cụcContainer(Mục tiêu vùng chứa) {
đã đồng bộ hóa (target.getTreeLock()) {
Phần trong phần trong = target.getInsets();
int top = insets.top;
int Bottom = target.getHeight() - insets.bottom;
int left = insets.left;
int right = target.getWidth() - insets.right;
Thành phần c;
if (northList.size() > 0) {
for (int i = 0; i < NorthList.size(); i++) {
c = (Thành phần) NorthList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getPreferredSize();
c.setSize(phải - trái, d.height);
c.setBounds(trái, trên, phải - trái, c.getHeight());
đỉnh += d.height;
}
}
if (southList.size() > 0) {
for (int i = 0; i < southList.size(); i++) {
c = (Thành phần) southList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getPreferredSize();
c.setSize(phải - trái, d.height);
c.setBounds(trái, dưới - d.height, phải - trái, c.getHeight());
đáy -= d.height;
}
}
if (eastList.size() > 0) {
for (int i = 0; i < eastList.size(); i++) {
c = (Thành phần) eastList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getPreferredSize();
c.setSize(d.width, dưới - trên);
c.setBounds(phải - d.width, top, c.getWidth(), Bottom - top);
phải -= d.width;
}
}
if (westList.size() > 0) {
for (int i = 0; i < westList.size(); i++) {
c = (Thành phần) westList.get(i);
if (!c.isVisible()) {
continue;
}
Kích thước d = c.getPreferredSize();
c.setSize(d.width, dưới - trên);
c.setBounds(trái, trên cùng, c.getWidth(), dưới cùng - trên cùng);
trái += d.width;
}
}
if (centerList.size() > 0) {
for (int i = 0; i < centerList.size(); i++) {
c = (Thành phần) centerList.get(i);
if (!c.isVisible()) {
continue;
}
c.setBounds(trái, trên, phải - trái, dưới - trên);
}
}
}
}
}
Về java - các thanh công cụ cạnh nhau, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/8150557/
Sự khác biệt giữa hai là gì? v7-21 Có phải tất cả các tính năng không có trong thanh công cụ đều được đưa vào thanh công cụ không? Những hạn chế của việc sử dụng thanh công cụ v7-21 thay vì thanh công cụ là gì? Câu trả lời hay nhất nếu bạn xem tài liệu về Thanh công cụ và AppCompat Toolba
Làm cách nào để tạo thanh công cụ Tinymce có thể kéo được bằng jQuery? Câu trả lời hay nhất hãy thử cái này tinyMCE.init({ // ... hand_event_cal trong phương thức init tinyMCE của bạn
Có thể có ExtJsToolBar nhiều dòng không? Tôi muốn một vài điều khiển ở hàng đầu tiên và 3 ExtJsButton ở hàng thứ hai. Thanh công cụ là thanh công cụ trên cùng của bảng điều khiển. Câu trả lời hay nhất Không chắc chắn về các phiên bản trước, nhưng bắt đầu với ExtJS 4.0
Môi trường: Bố cục tự động trong iOS 6/7, Xcode 5. Tôi biết rằng để thay đổi kích thước của NavBar cho phù hợp với thanh trạng thái, tôi đặt hình nền của NavBar ở mức cao 64 bit (Trích: Bài giảng Video WWDC 2013
Có cách nào để NSButton mặc định được sử dụng trong OS X để điều hướng nội dung của cửa sổ không? Các nút tôi đang nói đến hiển thị trong Finder, Tùy chọn hệ thống, Safari, Mac App Store, Game Center, v.v. Mặc dù tôi có thể sử dụng
Tôi không sử dụng các menu và thanh công cụ trong gvim trên Windows; tôi có thể ẩn chúng được không? Điều này sẽ cung cấp nhiều không gian hơn cho vùng văn bản. Câu trả lời hay nhất sử dụng cài đặt guioptions (viết tắt là go). :set guioptions -
Tôi đã tạo một thanh công cụ float bên ngoài cho tinymce bằng jQuery. tinyMCE.init({ ... theme_advanced_toolbar_location :
Sử dụng TitleAreaDialog của tôi, bạn có thể thêm một khu vực hoặc một thanh ở dưới cùng bên dưới nút. Khi một thao tác xảy ra, một thông báo có thể được hiển thị cho người dùng. Đây là ví dụ tôi đang đề cập đến Câu trả lời hay nhất Theo như tôi biết thì điều này hiệu quả với Hộp thoại JFace
Tôi đã tạo JToolBar (Java Swing). Tôi đặt hình nền trên khung chứa JToolBar. Tôi muốn JToolBar của tôi trong suốt để có thể nhìn thấy hình ảnh được giữ trên khung. Tôi đang sử dụng
Làm cách nào để kiểm tra khi nào bàn phím được hiển thị đầy đủ và khi nào nó bị thu gọn như thế này? Có lẽ tôi có thể kiểm tra chiều cao của nó? Tôi tạm thời kiểm tra userInfo trong thông báo nhưng không tìm thấy gì hữu ích để giải quyết vấn đề của mình. Câu trả lời hay nhất chỉ cần đăng ký nhận thông báo: Noti
Tôi muốn tạo thanh công cụ có tiêu đề bằng giao diện người dùng jQuery. Cho đến nay tôi đã có: HTML: bắt đầu Gửi CSS: #toolbar
Đây là tệp danh sách của tôi: Đây là bố cục Hoạt động của tôi: Đây là tệp danh sách của tôi
Làm cách nào để xóa hộp màu trắng ở đầu Chế độ xem Android? Tôi không thấy bất cứ nơi nào trong mã của mình nơi tôi gọi thứ gì đó tạo ra thanh công cụ và tôi cũng không tự viết mã. Nó cũng tồn tại ở trên cùng của Chế độ xem chứ không phải trong đó. Tôi đoán chế độ xem thiết kế của tệp xml
Có ai biết làm thế nào để làm điều này? Câu trả lời hay nhất sử dụng LinearLayout vớialignParentBottom="true" như thế này: Tôi chưa thử biên dịch, bạn có thể cần sửa một số lỗi chính tả, nhưng đây là một lỗi
Tôi muốn thay đổi chiều cao và chiều rộng của biểu tượng điều hướng theo chương trình (vòng tròn màu đen trong ảnh chụp màn hình) trên thanh công cụ Android. Có cách nào không? Đây không phải là biểu tượng trên thanh công cụ. Tôi không thể cập nhật chủ đề thanh công cụ trong Styles xml vì tôi muốn nó động
Tôi hiện đang phát triển một ứng dụng triển khai thanh công cụ Appcompat. Bây giờ vấn đề của tôi là nếu tôi chọn Light Actionbar làm cơ sở thì menu sẽ có màu trắng và tiêu đề là màu đen. Tôi muốn cả hai đều có màu trắng. Nếu tôi đổi thành
Có thể hiển thị cả biểu tượng trang chủ và biểu tượng quay lại trên thanh công cụ không? 1) Có thể thay đổi thứ tự hiển thị của biểu tượng nút quay lại và biểu tượng trang chủ. Hiện tại, nó hiển thị Nút Mũi tên trước tiên và sau đó là Logo (Nút Home) 2) Yêu cầu thứ hai là xóa Hành động khi nhấp vào Biểu tượng Trang chủ
Tôi muốn một thanh hành động có chiều cao gấp đôi (như được hiển thị trong ví dụ về hướng dẫn Material), nhưng có (có thể) 2 dòng văn bản trong tiêu đề. Tiêu đề tôi đang sử dụng là tiêu đề động và phụ thuộc vào các mục được hiển thị trên trang. Nếu chỉ có một hàng, nó sẽ trông giống như một thanh hành động bình thường, nếu có
Hiện đang làm việc để điều chỉnh bố cục thanh công cụ của tôi. Tôi có hai nút. Một cái được căn trái và cái kia được căn phải. Văn bản (tiêu đề ứng dụng) cần được căn giữa giữa hai nút. Ví dụ: [Nút 1] [Văn bản] [Nút 2] Câu hỏi của tôi. Văn bản không được căn giữa. phải mất
Tôi có RecyclerView chứa CardView. Tôi muốn thêm một thanh công cụ vào mỗi CardView để nó trông và hoạt động giống như thanh công cụ chính: [icon] [title] ......... [button] [button]
Tôi là một lập trình viên xuất sắc, rất giỏi!