Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में बटन का layout_weight जावा कोड से डायनामिकली कैसे सेट करें?

LinearLayout में प्रोग्रामेटिकली बटन बनाकर layout_weight असाइन करने का तरीका।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट (केवल कंटेनर)

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:gravity="center"
    android:padding="4dp"
    tools:context=".MainActivity">
</LinearLayout>

चरण 3: डायनामिक बटन निर्माण

src/MainActivity.java:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {
    LinearLayout linearLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        linearLayout = findViewById(R.id.linearLayout);

        // बटन 1 - 30% वजन
        LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.WRAP_CONTENT,
            LinearLayout.LayoutParams.WRAP_CONTENT
        );
        params1.weight = 0.3f;
        Button button1 = new Button(this);
        button1.setText("Button 1 (30%)");
        button1.setLayoutParams(params1);
        linearLayout.addView(button1);

        // बटन 2 - 70% वजन
        LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.WRAP_CONTENT,
            LinearLayout.LayoutParams.WRAP_CONTENT
        );
        params2.weight = 0.7f;
        Button button2 = new Button(this);
        button2.setText("Button 2 (70%)");
        button2.setLayoutParams(params2);
        linearLayout.addView(button2);
    }
}

मुख्य बिंदु

  • LinearLayout.LayoutParams का उपयोग करें (ViewGroup.LayoutParams नहीं)
  • weight फ्लोट मान स्वीकार करता है (सापेक्ष अनुपात)
  • width=0dp और weight साथ में उपयोग करने पर स्पेस सटीक विभाजित होता है
  • WRAP_CONTENT के साथ वजन काम करता है लेकिन 0dp बेहतर है

बेहतर दृष्टिकोण: 0dp चौड़ाई

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    0, // चौड़ाई 0
    LinearLayout.LayoutParams.WRAP_CONTENT
);
params.weight = 1f; // समान वितरण

Kotlin एक्सटेंशन फंक्शन

fun LinearLayout.addWeightedButton(text: String, weight: Float) {
    val btn = Button(context).apply { text = text }
    val params = LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT).apply {
        this.weight = weight
    }
    addView(btn, params)
}

// उपयोग
linearLayout.addWeightedButton("Btn 1", 0.3f)
linearLayout.addWeightedButton("Btn 2", 0.7f)

चरण 4: मैनिफेस्ट

मानक मैनिफेस्ट।

  1. Android में AsyncTask के लिए टाइमआउट कैसे सेट करें? Android में AsyncTask के लिए टाइमआउट कैसे सेट करें?

    परिचय यह ट्यूटोरियल दिखाता है कि AsyncTask के लिए टाइमआउट कैसे सेट करें। ध्यान दें: AsyncTask API 30 (Android 11) में डिप्रिकेटेड है। आधुनिक ऐप्स के लिए Coroutines, RxJava, या ExecutorService उपयोग करें। यह उदाहरण केवल लिगेसी कोड समझने के लिए है। आवश्यक चरण चरण 1: नया प्रोजेक्ट बनाएं Android Studi

  1. Java में JButton पर मार्जिन कैसे सेट करें? Java में JButton पर मार्जिन कैसे सेट करें?

    एक JButton, AbstractButton का एक सबक्लास है और इसका उपयोग जावा स्विंग एप्लिकेशन में प्लेटफॉर्म-इंडिपेंडेंट बटन जोड़ने के लिए किया जा सकता है। जब बटन दबाया या क्लिक किया जाता है तो JButon ActionListener इंटरफेस उत्पन्न कर सकता है, यह MouseListener और KeyListener इंटरफेस भी उत्पन्न कर सकता है। हम JBut

  1. एंड्रॉइड पर आउटलुक ईमेल सेट करें - त्वरित और आसान गाइड एंड्रॉइड पर आउटलुक ईमेल सेट करें - त्वरित और आसान गाइड

    आउटलुक दशकों से सबसे लोकप्रिय ईमेल प्रबंधन समाधानों में से एक रहा है और दुनिया भर के कई व्यक्तियों और व्यवसायों द्वारा उपयोग किया जाता है। जबकि यह आपके कंप्यूटर पर ईमेल एक्सेस करने के लिए आपका प्राथमिक उपकरण हो सकता है, यह निश्चित रूप से आपके स्मार्टफोन के बारे में बात करते समय समान नहीं है। लेकिन अ