Android में व्यू की स्थिति प्रोग्रामेटिकली बदलने का गाइड
यह ट्यूटोरियल दिखाता है कि कैसे RelativeLayout.LayoutParams और addRule() का उपयोग करके रनटाइम पर एक व्यू (TextView) की स्थिति को दूसरे व्यू (Button) के सापेक्ष बदला जाए।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट फ़ाइल में कोड जोड़ें
res/layout/activity_main.xml में:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relativeLayout"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textStyle="bold|italic"
android:text="Sample TextView"
android:padding="10dp" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Put text below this button"
android:layout_centerInParent="true" />
</RelativeLayout>
चरण 3: MainActivity.java में कोड जोड़ें
src/MainActivity.java में:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button button;
TextView textView;
RelativeLayout relativeLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
relativeLayout = findViewById(R.id.relativeLayout);
textView = findViewById(R.id.textView);
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) textView.getLayoutParams();
layoutParams.addRule(RelativeLayout.BELOW, button.getId());
layoutParams.addRule(RelativeLayout.ALIGN_LEFT, button.getId());
textView.setLayoutParams(layoutParams);
}
});
}
}
मुख्य बिंदु
getLayoutParams()वर्तमान लेआउट पैरामीटर्स प्राप्त करता हैaddRule()RelativeLayout नियम जोड़ता है (BELOW, ALIGN_LEFT, आदि)setLayoutParams()नए पैरामीटर्स लागू करता है- पैरेंट लेआउट RelativeLayout होना चाहिए
सामान्य RelativeLayout नियम
| नियम | विवरण |
|---|---|
| BELOW | निर्दिष्ट व्यू के नीचे रखें |
| ABOVE | निर्दिष्ट व्यू के ऊपर रखें |
| ALIGN_LEFT | बाएं किनारे संरेखित करें |
| ALIGN_RIGHT | दाएं किनारे संरेखित करें |
| CENTER_IN_PARENT | पैरेंट में केंद्रित करें |
चरण 4: AndroidManifest.xml में कोड जोड़ें
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ऐप चलाएं
डिवाइस कनेक्ट करें, Run आइकन पर क्लिक करें, बटन दबाएं और TextView को बटन के नीचे जाते देखें।