मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

SwiftUI से आना

SwiftUI में body की गणना होती है और जब @State बदलता है तो व्यू अमान्य हो जाता है। CrossFly में आप एक बार माउंट करते हैं और म्यूट करते हैं। पहले दर्शन पढ़ें।

अनुवाद तालिका

SwiftUI CrossFly
View / गणना किया गया body onShow() में एक बार माउंट किया गया UI
@State / @Binding / @ObservedObject फ़ील्ड + repaint() (बिना स्वचालित अमान्यकरण के)
VStack / HStack / ZStack VerticalLayout / HorizontalLayout / RelativeLayout
Spacer() Gap / अंश (फ्रेमवर्क का Spacer हटा दिया गया)
.padding() स्टाइल में ingap
List VirtualListView
Text Label
Button Button
NavigationStack / .sheet Window का स्टैक / ActionSheet
.alert Alert
async / await / Task Thread + Component.onUI(...)
Color int 0xAARRGGBB

गंतव्य का अंतर

SwiftUI केवल Apple पर चलता है। CrossFly एक Java बेस है जो iOS और Android, Desktop तथा Web पर चलता है — सभी में समान स्क्रीन कोड (देखें प्लेटफ़ॉर्म)।

पहले कैसा था / अब कैसा है — फ़ॉर्म

// SwiftUI
struct LoginView: View {
   @State private var email = ""
   var body: some View {
      VStack {
         TextField("E-mail", text: $email)
         Button("Entrar") { entrar(email) }
      }
   }
}
// CrossFly
public class LoginScreen extends Window {
   @Override public void onShow() throws Exception {
      super.onShow();
      setLayout(new VerticalLayout());
      TextField email = new TextField().caption("E-mail");
      add(LAY_AUTO, email);
      Button entrar = new Button("Entrar");
      entrar.onAction(c -> entrar(email.getText()));   // सबमिट पर मान पढ़ता है (बिना $binding)
      add(LAY_AUTO, entrar);
   }
}

बिना $binding: जब आपको ज़रूरत हो तब आप getText() पढ़ते हैं (उदा.: onAction में), फ़ील्ड↔वैरिएबल के बीच कोई स्वचालित बंधन नहीं है (देखें टेक्स्ट फ़ील्ड्स)।

यह भी देखें

क्या यह पृष्ठ उपयोगी था?